Estetyczne współdzielenie plików między Windowsem a Linuksem, czyli jak ukryć foldery systemowe

Kategoria: Oprogramowanie Data publikacji:

Na co dzień korzystam z Fedory (i mam tu na myśli system operacyjny, a nie kapelusz), ale czasami zdarza się mi się pracować z systemem Windows, dlatego posiadam na dysku obszar współdzie­lony plików między tymi systemami. W dzisiejszym wpisie opiszę, jak poradziłem sobie z proble­mem nieestetycznych plików systemowych, które w takiej sytuacji mogą pojawić się na ekranie.

Prawda w oczy kole, czyli o nieukrytych plikach ukrytych

Systemy operacyjne tworzą różne „brzydkie” pliki i foldery w głównych katalogach partycji dyskowych, a czasem także w katalogach użytkownika.

System Windows samoczynnie tworzy katalogi takie jak System Volume Information czy $RECYCLE.BIN oraz pliki takie jak desktop.ini. Możemy je spotkać w głównych folderach partycji lub w katalogach „Dokumenty”, „Obrazy” itp. Są one wymagane do poprawnego działania niektórych funkcji i dlatego domyślnie są niewidoczne — posiadają atrybut „ukryty” na poziomie systemu plików. Atrybut ten nie jest jednak respektowany w systemach z rodziny Linux.

Foldery systemowe Windows widoczne w Fedorze.

Linuksy również mają swoje za uszami. Choć zdarza się to rzadziej, tutaj też powstają z pozoru „śmieciowe” elementy. Najczęściej przeze mnie spotykanym jest katalog o nazwie .Trash-1000 (gdzie 1000 to ID użytkownika), który pełni rolę kosza dla danej partycji. Dzięki kropce na początku nazwy, jest on niewidoczny w Linuksach, jednak system Windows ignoruje ten fakt.

Linuksowy kosz widoczny w Windows.

Współdzielenie partycji dyskowej albo pendrive’a lub dysku zewnętrznego między dwoma systemami — Windowsem i Linuksem — prowadzi do nieestetycznego odsłonięcia „technicznych” plików i folderów tego typu. Jak je skutecznie ukryć w obydwu systemach?

Co z oczu, to z serca, czyli jak ukryć pliki ukryte

Po stronie Okien

Aby stworzony przez Linuksa folder .Trash-1000 ukryć w systemie Windows, należy nadać mu atrybut „ukryty”. W Windows można po prostu kliknąć prawym przyciskiem myszy na folderze, a potem wybrać „Właściwości” → „Atrybuty” → „Ukryty” → „OK”. Tę zmianę można też wprowadzić przez wiersz polecenia, uruchamiając następującą komendę:

attrib +H .Trash-1000

Dodać do folderu .Trash-1000 atrybut „ukryty” można też z poziomu terminala w Linuksie. W przypadku partycji FAT32 należy użyć poniższych poleceń:

printf 'drive d: file="%s"' `findmnt . -nf -osource` > /tmp/mtoolsrc
sudo MTOOLSRC=/tmp/mtoolsrc mattrib +h d:/.Trash-1000

A w przypadku partycji z systemem plików NTFS można wykorzystać:

setfattr -h -v 0x00000002 -n system.ntfs_attrib_be .Trash-1000

We wszystkich podanych wyżej poleceniach wymagane jest, aby katalog bieżący terminala był ustawiony na folder zawierający ukrywany element.

Po stronie Pingwina

W środowisku graficznym GNOME plik .hidden umożliwia ukrycie folderów i plików, których nazwa nie zaczyna się od kropki. Inne środowiska oparte na technologiach GNOME takie jak Cinnamon i MATE prawdopodobnie również wspierają ten sposób. Plik .hidden należy stworzyć w folderze zawierającym niepożądany obiekt i wypisać w oddzielnych liniach nazwy plików, które mają być traktowane jak ukryte.

Aby rozprawić się z System Volume Information$RECYCLE.BIN, wystarczy utworzyć plik .hidden w zwykłym systemowym edytorze tekstowym i wypisać nazwy tych obiektów w oddzielnych liniach. Można też w katalogu docelowym uruchomić proste polecenie:

printf "\$RECYCLE.BIN\nSystem Volume Information" > .hidden

Warto też pamiętać, że dla utrzymania estetyki nowo utworzony plik .hidden należy oddzielnie ukryć po stronie systemu Windows, na przykład używając metody opisanej wyżej. ;-)

Oko za oko, ząb za ząb, czyli praktyczny przykład

Zgodnie z procedurą, którą opisałem we wpisie „Profil użytkownika na oddzielnej partycji w Windows 10”, katalog domowy użytkownika Windows umieściłem na oddzielnej partycji NTFS. Znajduje się na niej folder „Tomasz”, a w nim istnieją katalogi użytkownika takie jak Documents, Downloads, Pictures, Music, a także foldery systemowe Windows takie jak AppData, Recent, SendTo. Dodatkowo w każdym katalogu użytkownika istnieje plik desktop.ini, wymagany do wyświetlania nazw folderów po polsku w Windows.

Aby uprzyjemnić przeglądanie windowsowego katalogu domowego z poziomu Fedory, chciałbym:

  • w głównym katalogu stworzyć dowiązania symboliczne do folderów Downloads, Pictures, Music, aby uzyskać do nich szybszy dostęp;
  • ukryć techniczne pliki i foldery takie jak desktop.iniSystem Volume Information;
  • skonfigurować estetyczną ikonę partycji windowsowej w menadżerze plików GNOME.

Dowiązania symboliczne do folderów użytkownika

W uruchomionym jako administrator wierszu polecenia Windows, wykonałem w głównym katalogu partycji z danymi następujące polecenia:

mklink /D Dokumenty Tomasz\Documents
mklink /D Muzyka Tomasz\Music
mklink /D Obrazy Tomasz\Pictures
mklink /D Pobrane Tomasz\Downloads
mklink /D Pulpit Tomasz\Desktop
mklink /D Wideo Tomasz\Videos
attrib /L +H Dokumenty
attrib /L +H Muzyka
attrib /L +H Obrazy
attrib /L +H Pobrane
attrib /L +H Pulpit
attrib /L +H Wideo

Dowiązania symboliczne można wykonać również w Linuksie, ale ma to dwie wady: nie będą one działały w Windows, a także nie ma możliwości nadania im windowsowego atrybutu „ukryty” (siłowa próba kończy się nieodwracalnym uszkodzeniem dowiązania).

Mimo wszystko, dla zainteresowanych analogiczne polecenia z perspektywy Pingwina:

ln -s Tomasz/Documents Dokumenty
ln -s Tomasz/Music Muzyka
ln -s Tomasz/Pictures Obrazy
ln -s Tomasz/Downloads Pobrane
ln -s Tomasz/Desktop Pulpit
ln -s Tomasz/Videos Wideo

Ukrycie technicznych plików i folderów

Z poziomu Linuksa stworzyłem w głównym folderze partycji windowsowej plik .hidden:

$RECYCLE.BIN
System Volume Information
Tomasz
Wygodne dowiązania symboliczne, brak folderów systemowych Windowsa.

Posiadając już wygodne dowiązania symboliczne, utworzyłem hurtowo kolejne pliki .hidden:

echo "desktop.ini" | tee {Dokumenty,Muzyka,Obrazy,Pobrane,Pulpit,Wideo}/.hidden

Ze względu na kompatybilność z Windows XP, w folderze „Dokumenty” współczesne systemy Windows utrzymują dowiązania do katalogów z muzyką, obrazami i wideo. Plik .hidden w tym folderze wymagał więc dodatkowej pracy. Jego ostateczna treść to:

Moja muzyka
Moje obrazy
Moje wideo
desktop.ini

Ukryłem też pliki .hidden na poziomie systemu plików NTFS:

setfattr -h -v 0x00000002 -n system.ntfs_attrib_be {.,Dokumenty,Muzyka,Obrazy,Pobrane,Pulpit,Wideo}/.hidden

Analogicznie postąpiłem w przypadku katalogu pełniącego rolę kosza w Linuksie:

mkdir .Trash-1000
setfattr -h -v 0x00000002 -n system.ntfs_attrib_be .Trash-1000

Ikona partycji windowsowej w GNOME

Aby w menadżerze plików GNOME umieścić ikonę partycji z danymi z Windows, skonfigurowałem punkt montowania w programie Dyski GNOME. Wystarczy odnaleźć właściwą partycję i zaznaczyć ją, następnie kliknąć ikonę koła zębatego i wybrać z menu „Modyfikuj opcje montowania”. W oknie dialogowym wprowadziłem kilka zmian.

Opisane poniżej ustawienia w programie Dyski.
  1. Zaznaczyłem opcję „Wyświetlanie w interfejsie użytkownika”. Domyślnie partycja nie jest pokazywana, chyba że punkt montowania znajduje się w folderze /media.
  2. Określiłem własną nazwę — „Prywatne z Windows”.
  3. Pobrane z internetu logo Windowsa w formie pliku SVG umieściłem w folderze ~/.local/share/icons, a jako nazwę ikony podałem nazwę pliku bez rozszerzenia.
  4. Dla wygody określiłem też własny punkt montowania — /mnt/PrivateWin. Dzięki temu zawsze wiem, pod jaką ścieżką znajdują się pliki z Windows.
  5. Do opcji montowania dodałem parametr linuksowego sterownika NTFS o nazwie uid i jako wartość podałem moją nazwę użytkownika. W moim przypadku dopisałem: ,uid=tomasz. Ten krok jest wymagany, aby móc korzystać z linuksowego kosza.
„Inne położenia” w menadżerze plików GNOME.

Dodaj komentarz