Jak zamontować urządzenie w systemie Linux?


75

Przeczytałem niektóre zasoby na temat polecenia mount do montowania urządzeń w systemie Linux, ale żadne z nich nie jest wystarczająco jasne (przynajmniej dla mnie).

Ogólnie rzecz biorąc, co większość przewodników stwierdza:

$ mount
(lists all currently mounted devices)

$ mount -t type device directory
(mounts that device)

for example (to mount a USB drive):
$ mount -t vfat /dev/sdb1 /media/disk

Co nie jest dla mnie jasne:

  • Skąd mam wiedzieć, jak używać „urządzenia” jak w $ mount -t type device directory? To znaczy, skąd mam wiedzieć, że powinienem użyć „/ dev / sdb1” w tym poleceniu, $ mount -t vfat /dev/sdb1 /media/diskaby zamontować dysk USB?

  • co definiuje tutaj parametr „-t”? rodzaj?

$ man mountParę razy przeczytałem stronę man ( ), ale pewnie wciąż czegoś brakuje. Proszę o wyjaśnienie.


@rozcietrzewiacz Muszę przyznać, że mój umysł nie działał poprawnie. Kiedy odnosiłem się do @Let_Me_Be /dev/disk/by-id, myślałem, że „by-id” powinien zostać zastąpiony przez coś i powinien zostać wydany jako polecenie. Nie przyszło mi do głowy, że może to być katalog. Prawdopodobnie dzieje się tak w systemie Windows -> użytkownicy Linuksa w początkowej fazie! (lub to tylko ja :))
its_me

@rozcietrzewiacz To niezbyt uczciwie.
Alex Chamberlain,

4
Upuść -t type. mountnormalnie to rozgryzie i ogólnie, jeśli nie, to rozsądne wskazanie, że robisz coś złego.
Alex Chamberlain,

3
@AlexChamberlain Widzę, że mnie poniosło. Przepraszam @its_me. Powinienem napisać: „Jeśli naprawdę przeczytałeś instrukcję, nie zapytałbyś o -topcję”. Druga część pytania (jak ustalić, które urządzenie jest reprezentowane przez /dev/wpis) jest bardzo rozsądna.
rozcietrzewiacz

Odpowiedzi:


81

Możesz użyć fdisk, aby zorientować się, jakie masz partycje, na przykład:

fdisk -l

Przedstawia:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   204796619   102398278+   7  HPFS/NTFS
/dev/sda2       204797952   205821951      512000   83  Linux
/dev/sda3       205821952   976773119   385475584   8e  Linux LVM

W ten sposób wiesz, że masz sda1,2 i 3 partycje. Opcja -t jest typem systemu plików; może to być NTFS, FAT, EXT. W moim przykładzie sda1 to NTFS, więc powinno być coś w stylu:

mount -t ntfs /dev/sda1  /mnt/

Urządzenia USB to zazwyczaj vatat, a Linux to ext.


Jestem na Fedorze VM (host Windows 7). Właśnie podłączyłem dysk USB (system Windows nie rozpoznaje go, ponieważ maszyna wirtualna jest uruchomiona) i wydałem polecenie $ fdisk -l. Wymienia jednak tylko systemy plików Linux i Linux LVM (tylko dwa). Nie vfat, ntfs, hpfs ani ext itp.
its_me

Może nie jest to problem z montowaniem, ale problem z rozpoznawaniem urządzenia. Spójrz na plik / var / log / message, powinien pokazać, czy jest jakiś problem z urządzeniem USB.
ghm1014,

Więc normalnie jest to, jak powinienem to znaleźć na działającym systemie Linux: podłącz pendrive (przykład), wydaj polecenie # fdisk -li znajdź urządzenie (/ dev / *) i jego system plików (vfat, ntfs, hpfs, ext itp.) . Dobrze?
its_me

Zazwyczaj tak. Jeśli korzystasz z gnome, możesz zamontować USB i zewnętrzne dyski twarde, ale sam bez montowania ręcznego. Pokazuje okno wyskakujące, tak jak Windows.
ghm1014,

Ostatnia wątpliwość. Czy są to jedyne popularne pliki urządzeń systemu plików: / dev / sd * lub / dev / hd * dla dysków twardych, / dev / cdrom dla dysków CD-ROM i / dev / fd * dla dyskietek. Coś jeszcze?
its_me

17

Byłem naprawdę zardzewiały, a potem zaczęło wracać ... jeśli to nie odpowiada na twoje pytanie, być może źle je odczytałem ...

Alibi: jest to wersja Ubuntu 14. Twój przebieg może się różnić.

Używam, lsblkaby uzyskać punkty montowania, które są inne niż mount dla mnie lsblkjest łatwiejszy do odczytania niżmount

Upewnij się, że masz katalog utworzony przed przystąpieniem do montowania urządzenia.

sudo mkdir /{your directory name here}
sudo mount /dev/{specific device id} /{your directory name here that is already created}

Powinieneś być dobry, ale sprawdź uprawnienia bezpieczeństwa w tym nowym katalogu, aby upewnić się, że jest to, czego chcesz.


7

Obecnie możesz używać pełnych ścieżek do montowania określonego urządzenia.

Na przykład:

mount /dev/disk/by-id/ata-ST31500341AS_9VS2AM04-part1 /some/dir
mount /dev/disk/by-id/usb-HTC_Android_Phone_SH0BTRX01208-0\:0 /some/dir

Gdzie mogę znaleźć więcej informacji na ten temat? Nie jestem jeszcze zainteresowany tą „pełną gadaniną” w Linuksie, więc jest to mylące.
its_me

1
@Aahan Cóż, to tylko dowiązania symboliczne do /dev/sd*. Istnieje /dev/disk/by-id(urządzenie / ID partycji), /dev/disk/by-uuid(urządzenie / partycji UUID - nie bardzo przydatny do stosowania ręcznego), /dev/disk/by-path(zależy od tego jak urządzenie jest podłączone), /dev/disk/by-label(etykieta partycji jeśli występuje)
Let_Me_Be

skąd biorę te dane (identyfikator partycji, ścieżka urządzenia, etykieta itp.)?
its_me

1
@Aahan Cóż, to właśnie raportuje urządzenie. Identyfikatorem będzie nazwa urządzenia, model lub numer seryjny albo kombinacja. Ścieżka będzie taka sama, ale zgłoszona dla sposobu podłączenia dysku, więc będzie na przykład pci-0000:00:1f.2-scsi-3:0:0:0-part3(urządzenie pci 0000: 00: 1f.2, trzeci port, trzecia partycja), etykieta będzie etykietą, uuid jest generowany komputerowo unikatowy id (użyjesz tego, jeśli będziesz chciał formy identyfikacji, która się nie zmieni).
Let_Me_Be

1
Kiedy odnosiłeś się do / dev / disk / by-id, myślałem, że „by-id” powinien zostać zastąpiony przez coś i powinien zostać wydany jako polecenie. Nie przyszło mi do głowy, że może to być katalog. Dzięki za cierpliwość do mnie. LOL, byłem śmieszny :)
its_me

3

mount(polecenie) zwykle określa „typ” systemu plików na urządzeniu. Myślę, że trudność polega na ustaleniu nazwy pliku urządzenia. Prawie musisz znać konwencje nazewnictwa dysków, aby to rozgryźć.

W aktualnym polu Arch Linux:

133 % ls /dev/sd??
/dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sdb1  /dev/sdb2

Ale to nie działa na dojrzałym (2.6.20.9) pudełku Slackware:

1 % ls /dev/sd??
zsh: no matches found: /dev/sd??
2 % ls /dev/hd??
/dev/hda1  /dev/hda2

Nie wiedząc z góry, że /dev/sd*albo /dev/hd*są twarde pliki urządzeń dysku, trzeba użyć lspcilub lsusbczy coś wymyślić nazwę pliku urządzenia. Urządzenia USB często zostawiają informacje, /var/log/messagesaby pomóc Ci dowiedzieć się, jaki plik urządzenia udev został do nich przypisany.


1
A co powiesz na użycie fdisk -linnej wymienionej odpowiedzi? (zobacz także mój najnowszy komentarz do tej odpowiedzi.)
its_me

1

W systemie Ubuntu 14 możesz także użyć aplikacji Dyski:

wprowadź opis zdjęcia tutaj

Najpierw kliknij dysk na lewym panelu, a następnie kliknij partycję na prawym panelu. Dolny prawy panel pokazuje format, aktualny stan montażu itp. Możesz także użyć tego GUI do tworzenia / usuwania / formatowania partycji.


Dlaczego dwa 4 GB identyczne? A OQ ma trudności ze znalezieniem odpowiedniego urządzenia. A następnie formatować?
rastafile

1

Dlaczego mamy na to wiele sposobów, ale jak zawsze bierzemy pod uwagę i nie wiemy, gdzie system plików używany w urządzeniu może nieco utrudnić, ale możemy użyć opcji „auto”, aby trochę pomóc.

mount -t auto /dev/sdb1 /media/pendrv

i gotowe nasze urządzenie zostanie zamontowane: at / media / pendrv gotowe do użycia, a następnie po prostu użyj:

umount /media/pendrv

... aby zwolnić urządzenie.


0

Forum ThoerX Sprawdź urządzenie za pomocą fdisk -l

Partition the device as following :-
fdisk /dev/sda
d - Delete old partitions
n - New partition
select partition number
select start block
select end block
v - verify the new partition
w - write through

now fdisk - l should show /dev/sda1 with proper filesystem type (say ext4)
mount -t ext4 /dev/sda1 /myMountPoint

0

Mocowanie „urządzenie”, o którym mówi man, to logiczne urządzenie blokowe z systemem plików.

„Urządzenie” może również oznaczać produkt (SSD jest dyskiem, HDD jest dyskiem, DVD jest dyskiem, ODD jest dyskiem.

Często nie ma znaczenia, który dokładnie. Ale jeśli chodzi o montowanie (lub formatowanie lub partycjonowanie), ma to znaczenie, ponieważ ma znaczenie logiczne.

Jak widać, sda jest tuż obok sda1, 2, 3 ... A także sdb, sdc, każda ze swoimi partycjami. Możesz więc pomylić się w obie strony.

Kiedy wybierasz mount /dev/sdb1 /media/disk/partycję 1 z dysku sata „b”. Jeśli ten sdb1 jest partycją na pendrivie USB, nazwa twojego punktu montowania nie mówi zbyt dobrze.

Możesz nawet zamontować pamięć RAM, aby utworzyć ramdysk lub plik („urządzenie pętli”). Lub całkowicie wirtualne „urządzenie”, takie jak sysfs, które zapełnia katalog / sys (mountpoint).

Idea montowania, a tym samym polecenie montowania, opiera się na koncepcji (VFS itp.) Z trzema głównymi elementami:

  1. Partycji urządzenia / blok: porównanie fdisk -l, lsblki cat /proc/partitions. To trudne, ale 80% to po prostu inne punkty widzenia.
  2. System plików: Formatowanie zamienia partycję 20 GB w pusty katalog z 18 GB wolnego miejsca do wypełnienia plikami. Zobacz man mkfsi man mkfs.ext2(mkfs.FSTYPE).
  3. Punkt montowania: To tylko „hook”, (pusty) katalog, do którego nowa gałąź jest dołączona do górnego katalogu „/”. Przez wiązanie i nakładanie można tworzyć skomplikowane FS drzew. Ale jakikolwiek ad hoc mkdir xyzjest technicznie w porządku.

Cały ten montaż został kiedyś skonfigurowany centralnie przez sysadmin w / etc / fstab. Przy dzisiejszym podłączaniu pamięci masowej na gorąco sprawy stają się nieco skomplikowane.

W przypadku pióra USB jest to moduł jądra, który wyskakuje / dev / sdb i jego partycje w ułamku sekundy.

Wszelka dalsza automatyzacja podłączania na gorąco, tak prosta jak jest, musi być koordynowana przez udev, a czasem doskonalona przez dodatkowe narzędzia. Udev może obsłużyć WSZYSTKIE urządzenia, nie tylko pamięć.

Jesteśmy pochwyceni między komfortem posiadania nowej ikony (lub nawet „urządzenia” o przyzwoitej nazwie), a automatycznym przygotowaniem części przez jądro z (wirtualnym) systemem plików. Ale z RAID i szyfrowaniem oraz wszystkimi różnymi „urządzeniami” pamięci masowej Linux musi dodać pewne warstwy.

Na koniec chcesz mieć tę zawartość na wyciągnięcie ręki.

Zwykle musisz tylko określić poprawne ... URZĄDZENIE;). Możesz ls /dev/sd*zobaczyć, co tam jest: jakie litery, które cyfry identyfikują URZĄDZENIE ...

A potem wpisz

mkdir mydev
mount /dev/DEVICE mydev

(Możesz pominąć -t typeczęść)


Jest to jednocześnie łatwe do odczytania i systematyczne. „mount” to bardzo ważna koncepcja. Wszystkie te odpowiedzi pokazują „problem”, szczególnie dla debiutantów . „mount” to polecenie systemu UNIX. Wielowymiarowy. Tylko fork () bardziej złożony.
rastafile

wikipedia krytyka linux: kiedyś systemy Linux wymagały nośników wymiennych, takich jak dyskietki i dyski CD-ROM, aby były ręcznie montowane przed uzyskaniem dostępu. Media montażowe są teraz automatyczne w prawie wszystkich dystrybucjach, wraz z rozwojem udev.
rastafile
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.