cz. 3 | W Uniksach to prostsze
12.02.2011 | aktual.: 13.02.2011 15:54
Witam, w tej części pokażę Wam jakim sposobem można łatwo stworzyć plikopartycję pod Uniksami i jakie są jej zastosowania.
Przy pomocy plikopartycji możemy stworzyć nową partycję o dowolnym rozmiarze oraz systemie plików i zapisać ją do zwykłego pliku na innej partycji, brzmi skomplikowanie?
Jakie są zalety plikopartycji?
+ Możliwość łatwego stworzenia plikopartycji oraz jej sformatowania + Nie ma potrzeby aby grzebać w tablicy partycji - zwłaszcza kiedy jest uruchomiony na niej system + Bardzo łatwe operacje na takiej partycji, łatwe przenoszenie, montowanie
Jakie może być zastosowanie plikopartycji?
Przy pomocy plikopartycji możemy stworzyć restrykcyjny system plików dla konkretnego użytkownika w systemie - dzięki czemu nie będzie on mógł wykonywać czynności na które Mu nie pozwolimy - przykładem wykonywanie własnych skryptów i programów (noexec).
Plikopartycję można zamontować identycznym sposobem jak zwykłą partycję, najczęściej z tymi samymi bądź podobnymi opcjami czyli:
ro - tylko do odczytu rw - do odczytu i zapisu exec - można wykonywać pliki binarne/skryptowe znajdujące się na partycji noexec - brak możliwości wykonywania plików binarnych/skryptowych z partycji auto - może być montowana przy pomocy mount -a noauto - nie może być montowana przy pomocy mount -a
Tworzenie plikopartycji
Najpierw wypadałoby stworzyć plik wypełniony zerami o rozmiarze partycji czyli:
dd if=/dev/zero of=/usr/partitions/partycja-ext4 count=50 bs=1M
50+0 przeczytanych recordów 50+0 zapisanych recordów skopiowane 52428800 bajtów (52 MB), 0,0995173 s, 527 MB/s
count - wielkość w megabajtach if - plik lub strumień z którego kopiowane są dane of - plik docelowy do którego dd zapisuje dane
Dla pewności możemy sprawdzić czy utworzony plik ma taki rozmiar jaki chcieliśmy:
du -sh /usr/partitions/partycja-ext4
Jeżeli wszystko się zgadza - możemy przejść do formatowania na wybrany przez Nas system plików.
Następnie warto by sprawdzić obsługę systemów plików w systemie:
ls /sbin |grep mkfs
Na Moim przykładzie z uwagi na to, że używam Gentoo lista jest bardzo krótka (jądro skompilowałem tylko z potrzebnymi Mi modułami i systemami plików bądź tymi podstawowymi):
webnull-gentoo-desktop webnull # ls /sbin |grep mkfs mkfs mkfs.bfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.minix
Zakładam, że zainteresowani będziecie systemem plików ext‑4 dlatego ten oto właśnie system plików wezmę za przykład:
mkfs.ext4 /usr/partitions/partycja-ext4
mke2fs 1.41.14 (22-Dec-2010) /usr/partitions/partycja-ext4 nie jest specjalnym urządzeniem blokowym. Kontynuować mimo to? (t,n) t Etykieta systemu plików= Typ OS: Linux Rozmiar bloku=1024 (log=0) Rozmiar fragmentu=1024 (log=0) Stride=0 bloków, szerokość Stripe=0 bloków 12824 i-węzłów, 51200 bloków 2560 bloków (5.00%) zarezerwowanych dla superużytkownika Pierwszy blok danych=1 Maksymalna liczba bloków systemu plików=52428800 7 grup bloków 8192 bloków w grupie, 8192 fragmentów w grupie 1832 i-węzłów w grupie Kopie zapasowe superbloku zapisane w blokach: 8193, 24577, 40961 Zapis tablicy i-węzłów: zakończono Tworzenie kroniki (4096 bloków): wykonano Zapis superbloków i podsumowania systemu plików: wykonano Ten system plików będzie automatycznie sprawdzany co każde 20 montowań lub co 180 dni, zależnie co nastąpi pierwsze. Można to zmienić poprzez tune2fs -c lub -i.
Montujemy plikopartycję
Aby zamontować plikopartycję z poziomu konsoli wystarczy użyć mount na przykładzie:
mount -o loop /usr/partitions/partycja-ext4 /media/partycja
czy
mount -o loop,ro,noexec /usr/partitions/example-user1 /home/example
Następnie można sprawdzić czy plikopartycja została zamontowana poleceniem mount bądź df -h.
root@webnull-oneill:~# mount |grep loop /dev/loop0 on /home/example type ext4 (rw,noexec)
root@webnull-oneill:~# df -h |grep loop /dev/loop0 49M 4,8M 42M 11% /home/example
Aby odmontować czyli odczepić system plików od głównej gałęzi należy wykonać:
umount /home/example
A jak zrobić to w Windows(R)?
Przestawiłem sposób Uniksowy, teraz poproszę kogoś aby przestawił Mi jak wykonać podobną operację w systemie Windows.
Oczywiście pomijam SWAP, oraz archiwa ISO i podobne - chodzi o system plików typu ext‑4, reiserfs, fat32, ntfs czy zfs pełnosprawny z obsługą odczytu i zapisu po zamontowaniu.
Powyższy obrazek pochodzi z http://techdunes.com/2010/08/18/create-virtual-drive-free-windows-7-bu...
Tworzenie wirtualnego dysku twardego w Windows jest prawie, że równie proste:
diskpart create vdisk file=C:\plikopartycja.vhd maximum=20000 select vdisk file=C:\plikopartycja.vhd attach vdisk
Tylko jak stworzyć partycji z pod konsoli i je sformatować na wybrany system plików? :>