Montowanie partycji FAT i NTFS

Kategoria: FAQ, etykiety: system, systemy plików

Dodany: 2009-08-02 18:25 (zmodyfikowany: 2011-07-11 20:18)
Przez: rychu

Wyświetleń: 103032

wersja 3.1, aktualizacja: 11.07.2011


ROZWIĄZANIA OPISYWANE W PONIŻSZYM ARTYKULE SĄ PRZESTARZAŁE.

Zainstaluj w systemie i uruchom ntfs-config:

#apt-get install ntfs-config
#ntfs-config

Prosty, graficzny konfigurator odwali za ciebie całą robotę ;)


Jeżeli masz już niejakie doświadczenie w pracy w systemie Linux i szukasz tylko krótkiej i treściwej odpowiedzi na pytanie: "jak zamontować te windowsowe partycje i dlaczego system nie robi tego sam", przejdź od razu na koniec tego artykułu i przeczytaj rozdział 3.2.

Jeżeli swoją przygodę z Linuksem zacząłeś niedawno, znajdź wolne 5 minut i przeczytaj cały artykuł.

1. Wprowadzenie

W Linuksie wszystko jest plikiem. Każdemu fizycznemu dyskowi twardemu czy partycji na tym dysku odpowiada konkretny plik w katalogu /dev. Chcąc uzyskać dostęp do danego urządzenia, odwołujemy się do reprezentującego go pliku. Nie ma tu takich rzeczy jak C:, D:, E:,... wszystkie dostępne partycje dysków, płyty CD/DVD, flaszki, aparaty, komórki i inne cuda są montowane do jednego wspólnego drzewa katalogowego (ang. root directory), oznaczanego po prostu łamakiem / (ang. slash).

Dostęp do poszczególnych dysków (a właściwie do systemów plików, które zostały założone na partycjach, znajdujących się na twardych dyskach) jest zrealizowany w ten sposób, że każdy z tych systemów plików (ang. file system) jest zamontowany w którymś miejscu naszego dużego drzewa katalogowego /.

Pracując przy komputerze zwykle wszystkie dane trzymasz w jednym miejscu. Dokumenty, muzyka, zdjęcia, jakieś inne projekty. Wg zarządzenia Billa G. takim miejscem w Windows jest katalog Moje Dokumenty. Jednak niektórzy ludzie wolą trzymać swoje dane w innym miejscu, a inni wręcz tworzą w tym celu osobny dysk D:. W Linuksie funkcję takiego dysku D:, czyli miejsca na dane użytkowników pełni katalog /home. Tutaj linuksowcy trzymają wszystkie swoje własne pliki. Jeśli zatem planujesz dłuższą przygodę z tym systemem, załóż osobną partycję na ten katalog. Jeśli natomiast twój Linux ma pracować jako serwer, wtedy nie potrzebujesz osobnej partycji na /home, warto natomiast umieścić na osobnej partycji katalog /var. Nadto, tradycyjnie do montowania 'obcych' (m.in. windowsowych) systemów plików w Linuksie wykorzystuje się katalog /mnt, choć ostatnio w Debianie nastała moda na montowanie wszystkiego co się da w katalogu /media.

2. Nomenklatura

2.1. Oznaczenia dysków

2.1.1. Dyski i napędy CD/DVD IDE:

Ostatnio coraz częściej dla interfejsu IDE używa się zamiennie nazwy PATA. Ponieważ jednak w biosach płyt głównych nadal jest stosowane określenie IDE, pozostaniemy przy nim.

Współczesne płyty główne zwykle posiadają jednokanałowy kontroler IDE, do którego można na jednej taśmie 80- lub 40-żyłowej podłączyć dwa dyski lub napędy CD/DVD. Będą się one wtedy nazywać:

  • /dev/hda - master
  • /dev/hdb - slave

W starszych płytach głównych tradycyjnie kontroler IDE był dwukanałowy - podłączone do niego dyski nosiły wówczas oznaczenia:

  • /dev/hda - primary master
  • /dev/hdb - primary slave
  • /dev/hdc - secondary master
  • /dev/hdd - secondary slave

Jeśli posiadasz dodatkowe kontrolery IDE na kartach rozszerzających PCI, to oczywiście poszczególne kanały są oznaczone kolejnymi literami alfabetu.

Uwaga: jeśli kompilowałeś jądro samodzielnie i używasz sterownika libata do obsługi dysku IDE, to jest on oznaczony wg nazewnictwa SATA.

2.1.2. Dyski i napędy CD/DVD podłączone do interfejsu SATA, SCSI lub USB.

W tym także pamięci flash, czytniki kart pamięci, aparaty fotograficzne, odtwarzacze mp3/mp4, telefony komórkowe i inne wtykalne badziewia:

  • /dev/sda
  • /dev/sdb
  • /dev/sdc
  • ...
  • /dev/sdz

2.2. Oznaczenia partycji

Partycje na dyskach oznaczane są kolejnymi liczbami zaczynając od 1, z tym, że:

  • partycje o numerach 1-4 są to partycje podstawowe;
  • partycja rozszerzona jest szczególnym rodzajem partycji podstawowej;
  • partycje o numerach 5 i powyżej są to partycje logiczne, które tworzy się w obrębie partycji rozszerzonej.

Zasady te są ważne dla tablicy partycji typu IBM/MS-DOS, najpowszechniej stosowanej w Europie przez użytkowników Windows oraz Linuksa. Oczywiście istnieją również inne rodzaje partycji - np. firmy Macintosh czy Sun proponują własne rozwiązania, jednak nie będziemy się nimi zajmować.

W przypadku twardych dysków zwykle odwołujemy się do pojedynczych partycji utworzonych na tych dyskach: często mają one różne systemy plików i jak już sobie powiedzieliśmy, są montowane w różnych miejscach drzewa katalogowego /

Przykład:

  • /dev/hda1 – pierwsza partycja na pierwszym dysku IDE;
  • /sev/sda1 – pierwsza partycja na dysku SATA/SCSI/USB.

Gdy chodzi o dyskietki, napędy CD/DVD oraz niektóre odtwarzacze mp3/mp4, komórki czy aparaty fotograficzne, nie wyróżnia się poszczególnych partycji na tym urządzeniu, urządzenie montujemy jak gdyby 'w całości'.

Przykład:

  • /dev/fd0 – dyskietka w pierwszej stacji dysków;
  • /dev/fd1 – dyskietka w drugiej stacji dysków (kto w dzisiejszych czasach ma dwie stacje dyskietek?);
  • /dev/hdb – płyta w napędzie CD/DVD IDE;
  • /dev/sdb – płyta w napędzie CD/DVD SCSI (albo IDE z zastosowaną symulacją SCSI – stosowane przed serią jąder 2.6);
  • /dev/sdc1 – typowy pendrive, odtwarzacz mp3/mp4, albo inny wtykacz;
  • /dev/sdc – nietypowy wtykacz – niektóre urządzenia jądro widzi w taki sposób.

3. Montowanie

3.1. Program mount

W sensie podstawowym, zamontowanie jakiegoś urządzenia polega na wydaniu polecenia:

mount -t typ   -o opcje   /dev/urządzenie   /katalog

Po skończonej pracy urządzenie należy odmontować:

umount /dev/urządzenie

albo

umount /katalog

W codziennej praktyce nie będziemy się tym poleceniem posługiwać – po prostu poinformujemy nasz system, jakie urządzenia, z jakimi opcjami i w którym miejscu ma zamontować automatycznie przy każdym uruchomieniu. Miejscem, w którym przechowywane są te informacje jest plik /etc/fstab.

3.2. Montowanie partycji na dysku twardym

Wykonując polecenie:

fdisk -l

otrzymujesz informacje o wszystkich partycjach na wszystkich dyskach ATA i SATA. Przykład:

Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1306    10490413+  83  Linux
/dev/sda2            1307        1372      530145   82  Linux swap / Solaris
/dev/sda3   *        1373        2677    10482412+   7  HPFS/NTFS
/dev/sda4            2810       38913   290005380    5  Extended
/dev/sda5            2810        9336    52428096    b  W95 FAT32
/dev/sda6            9337       38913   209720511   83  Linux

Na tym dysku mamy dwie partycje linuksowe (partycje 1 i 6) i linuksową partycję wymiany (2). Poza tym mamy tu też jedną partycję NTFS (3) oraz jedną FAT32 (5). Partycja nr 4 to partycja rozszerzona.

Jeżeli nie lubisz narzędzi konsolowych takich jak fdisk, możesz użyć programu gparted albo qtparted, żeby uzyskać informacje nt. rozkładu partycji na dyskach podłączonych do komputera.

Plik /etc/fstab w tym momencie wygląda następująco:

# /etc/fstab: static file system information.
#
# file system   mount point     type    options                                     dump pass
/dev/sda1       /               ext3    defaults,errors=remount-ro                  0   1
/dev/sda6       /home           ext3    defaults                                    0   2
/dev/sda2       none            swap    sw                                          0   0
proc            /proc           proc    defaults                                    0   0

/dev/hdb        /cdrom          iso9660 ro,user,iocharset=iso8859-2,noauto          0   0
/dev/fd0        /floppy         auto    rw,user,noauto                              0   0

Jak widzimy, mamy tu tylko partycje linuksowe (oraz przy okazji CD-ROM i stację dysków). Zatem powinniśmy uzupełnić ten plik o dwie kolejne linie:

/dev/sda3   /shit/C     ntfs-3g rw,uid=1000,gid=100,fmask=0111,dmask=0,locale=pl_PL.utf8,silent                 0   0
/dev/sda5   /shit/D     vfat    rw,uid=1000,gid=100,umask=0,iocharset=iso8859-2,codepage=852,quiet,showexec     0   0

Dodaliśmy zatem partycję NTFS, podmontowaną w miejscu /shit/C, a także partycję FAT32 na /shit/D. Oczywiście, katalogi te należałoby teraz założyć, używając do tego mkdir, a po wydaniu polecenia:

mount -a

Twoje systemy plików powinny być już zamontowane tam, gdzie trzeba. Przy następnym starcie systemu zostaną zamontowane automatycznie.

Żebyś nie musiał uskuteczniać żadnego RTFM, w przykładzie powyżej podałem komplet optymalnych opcji montowania – możesz je w zasadzie bezmyślnie skopiować i wkleić do swojego fstaba.

Uwaga odnośnie NTFS: żeby zamontować ten system plików, musisz zainstalować pakiet ntfs-3g. Upewnij się też, że parametr locale jest identyczny z tym, jaki masz ustawiony w systemie. Możesz to sprawdzić poleceniem:

locale -a

Uwaga odnośnie UID: jeśli nie wprowadzisz tej wartości, będzie ona rozumiana jako 0 (zero), a zatem wszystkie pliki na danej partycji należeć będą do użytkownika root. Spowoduje to, że możliwość zapisywania na tę partycję będzie miał tylko root, a zwykły użytkownik już nie, co nie jest zbyt wygodne. Najlepiej więc podać numer UID lub nazwę zwykłego użytkownika, na którym pracujesz, kiedy nie potrzebujesz uprawnień superużytkownika.

Więcej informacji na stronach man: mount (8), fstab (5) i ntfs-3g (8)

Podziękowania dla czadmana i bns za celne uwagi.

rychu@dug.net.pl

OSnews Wykop Blip Flaker Kciuk Śledzik Facebook Identi.ca Twitter del.icio.us Google Bookmarks