Как смонтировать устройство в Linux?


75

Я прочитал некоторые ресурсы о команде mount для монтирования устройств в Linux, но ни один из них не достаточно понятен (по крайней мере, для меня).

В целом это то, что большинство руководств заявляют:

$ 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

Что мне не понятно

  • Как я знаю, что использовать для "устройства", как в $ mount -t type device directory? То есть как я узнаю, что в этой команде я должен использовать «/ dev / sdb1» $ mount -t vfat /dev/sdb1 /media/diskдля подключения USB-накопителя?

  • что здесь определяет параметр "-t"? тип?

Я прочитал man-страницу ( $ man mount) пару раз, но, вероятно, я все еще что-то упускаю. Просьба уточнить.


@rozcietrzewiacz Я должен признать, что мой ум не работал должным образом. Когда @Let_Me_Be ссылался на /dev/disk/by-idменя, я думал, что «by-id» должен быть заменен чем-то и должен быть выдан как команда. Мне не пришло в голову, что это может быть каталог. Это, вероятно, происходит с пользователями Windows -> Linux на начальном этапе! (или это только я :))
its_me

@rozcietrzewiacz Это не очень справедливо.
Алекс Чемберлен

4
Брось -t type. mountобычно это выяснит, и, как правило, если это невозможно, это разумное указание на то, что вы делаете что-то не так.
Алекс Чемберлен

3
@AlexChamberlain Я вижу, что меня понесли. Мои извинения @its_me. Я должен был написать «Если бы вы действительно прочитали руководство, вы бы не спросили об этом -t». Другая часть вопроса (как определить, какое устройство представлено /dev/записью) очень разумна.
rozcietrzewiacz

Ответы:


81

Вы можете использовать fdisk, чтобы иметь представление о том, какие у вас разделы, например:

fdisk -l

Показывает:

   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

Таким образом, вы знаете, что у вас есть sda1,2 и 3 раздела. Опция -t - это тип файловой системы; это может быть NTFS, FAT, EXT. В моем примере sda1 - это ntfs, поэтому он должен выглядеть примерно так:

mount -t ntfs /dev/sda1  /mnt/

USB-устройства обычно vfat, а Linux - ext.


Я нахожусь на Fedora VM (хост Windows 7). Я просто подключил USB-накопитель (Windows не распознает его, потому что виртуальная машина работает) и выдал команду $ fdisk -l. Но в нем перечислены только файловые системы Linux и Linux LVM (только две). Не vfat, ntfs, hpfs или ext и т. Д.
its_me

Возможно, это не проблема монтирования, а проблема распознавания устройства. Посмотрите файл / var / log / message, он должен показать, есть ли какие-либо проблемы с устройством USB.
ghm1014

Итак, обычно это то, как я должен найти его в работающей системе Linux: # fdisk -lподключите флешку (пример), введите команду и найдите устройство (/ dev / *) и его файловую систему (vfat, ntfs, hpfs, ext и т. Д.) , Правильно?
its_me

Обычно да. Если вы используете gnome, он монтирует usb и внешние жесткие диски, но сам не монтирует их вручную. Он показывает всплывающее окно, как в Windows.
ghm1014

Последнее сомнение Это единственные распространенные файлы устройств файловой системы: / dev / sd * или / dev / hd * предназначены для жестких дисков, / dev / cdrom для компакт-дисков и / dev / fd * для дискет. Что-нибудь еще?
its_me

17

Я был действительно ржав на этом, и затем это начало возвращаться .. если это не отвечает на ваш вопрос, возможно я неправильно понял это ...

Алиби: это релиз Ubuntu 14. Ваш пробег может варьироваться.

Я использую, lsblkчтобы получить мои точки монтирования, которые отличаются от mount Для меня lsblkлегче читать, чемmount

Убедитесь, что у вас есть каталог, созданный, прежде чем приступить к монтированию вашего устройства.

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

Вы должны быть готовы, однако, проверьте разрешения безопасности для этого нового каталога, чтобы убедиться, что это то, что вы хотите.


7

В наши дни вы можете использовать подробные пути для монтирования определенного устройства.

Например:

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

Где я могу найти больше информации об этом? Я еще не увлечен этой "многословной вещью" в Linux, так что это сбивает с толку.
its_me

1
@Aahan Ну, это всего лишь символические ссылки /dev/sd*. Есть /dev/disk/by-id(идентификатор устройства / раздела), /dev/disk/by-uuid(UUID устройства / раздела - не очень полезен для ручного использования), /dev/disk/by-path(зависит от того, как подключено устройство), /dev/disk/by-label(метка раздела, если имеется)
Let_Me_Be

откуда я могу получить эти данные (идентификатор раздела, путь к устройству, метка и т. д.)?
its_me

1
@Aahan Хорошо, это то, что сообщает устройство. Идентификатором будет имя устройства, модель, серийный номер или их комбинация. Путь будет таким же, но сообщается для способа подключения диска, например, pci-0000:00:1f.2-scsi-3:0:0:0-part3(pci устройство 0000: 00: 1f.2, третий порт, третий раздел), метка будет меткой, uuid генерируется компьютером уникальным id (вы будете использовать его, если захотите форму идентификации, которая не изменится).
Let_Me_Be

1
Когда вы обращались к / dev / disk / by-id, я думал, что «by-id» должен быть заменен чем-то и должен быть выдан как команда. Мне не пришло в голову, что это может быть каталог. Спасибо за терпение со мной. LOL, мне было смешно :)
its_me

3

mount(команда) обычно определяет «тип» файловой системы на устройстве. Я думаю, что сложная часть, если выяснить имя файла устройства. Вы почти должны знать соглашения об именах дисков, чтобы понять это.

На современной версии Arch Linux:

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

Но это не работает на зрелом (2.6.20.9) Slackware box:

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

Не зная заранее, что /dev/sd*или /dev/hd*являются файлами устройства на жестком диске, вы должны использовать lspciили lsusbили что-то, чтобы выяснить имя файла устройства. USB-устройства часто оставляют информацию, /var/log/messagesчтобы помочь вам определить, какой файл устройства udev назначил им.


1
Как насчет использования, fdisk -lкак другой упомянутый ответ? (также, пожалуйста, смотрите мой последний комментарий к этому ответу.)
its_me

1

В Ubuntu 14 вы также можете использовать приложение Disks:

введите описание изображения здесь

Сначала нажмите на диск на левой панели, а затем нажмите на раздел на правой панели. В нижней части правой панели отображается формат, текущее состояние монтажа и т. Д. Вы также можете использовать этот графический интерфейс для создания / удаления / форматирования разделов.


Почему два 4ГБ одинаковые? И OQ трудно найти правильное устройство. А потом еще и формат?
растафиле

1

Почему у нас есть много способов сделать это, но, как всегда, мы также учитываем и не знаем, где файловая система, используемая в устройстве, может немного помешать, но мы можем использовать опцию «auto», чтобы немного помочь.

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

и готово, наше устройство будет смонтировано: at / media / pendrv готово к использованию, затем просто используйте:

umount /media/pendrv

... чтобы освободить устройство.


0

ThoerX Forum Проверьте устройство с помощью 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

«Устройство», о котором говорит man mount, является логическим блочным устройством с файловой системой.

«Устройство» также может означать продукт (SSD - это дисковод, HDD - дисковод, DVD - диск, ODD - дисковод.

Часто не имеет значения, что именно. Но когда дело доходит до монтирования (или форматирования, или разбиения), это имеет значение, потому что это имеет значение логически.

Как видите, sda находится рядом с sda1, 2, 3 ... А также sdb, sdc, каждый со своими разделами. Таким образом, вы можете пойти не так в обоих направлениях.

Когда вы mount /dev/sdb1 /media/disk/, вы выбираете раздел 1 с диска SATA "B". Если этот sdb1 является разделом USB-пера, то имя вашей точки монтирования не очень понятно.

Вы даже можете смонтировать часть оперативной памяти, чтобы создать виртуальный диск или файл («устройство петли»). Или полностью виртуальное «устройство» типа sysfs, которое заполняет каталог / sys (точка монтирования).

Идея монтирования и, следовательно, командного монтирования, опирается на концепцию (VFS и т. Д.) С тремя основными элементами:

  1. Раздел / блок устройства: сравнить fdisk -l, lsblkи cat /proc/partitions. Это сложно, но 80% - это просто разные точки зрения.
  2. Файловая система: Форматирование превращает раздел размером 20 ГБ в пустой каталог с 18 ГБ свободного места для заполнения файлами. Смотрите man mkfsи man mkfs.ext2(mkfs.FSTYPE).
  3. Точка монтирования: это просто «крючок», (пустой) каталог, к которому новая ветка присоединена к верхнему каталогу «/». При связывании и накладывая вы можете создавать сложные деревья FS. Но любой ad hoc mkdir xyzв порядке, технически.

Все это монтирование когда-то было сконфигурировано системным администратором в / etc / fstab, централизованно. С сегодняшним горячим подключением запоминающего устройства все становится немного сложнее.

В случае ручки USB это модуль ядра, который выскакивает / dev / sdb и его разделы за доли секунды.

Вся дальнейшая автоматизация горячего подключения, как бы она ни была проста, должна координироваться udev, а иногда совершенствоваться дополнительными инструментами. Udev может обрабатывать ВСЕ устройства, а не только хранилище.

Мы попадаем между комфортом, когда автоматически появляется новая иконка (или даже просто «устройство» с приличным именем), и тем, как ядро ​​с (виртуальной) файловой системой систематически должно готовить части. Но с помощью RAID и шифрования и всех других «устройств хранения» Linux должна добавить несколько уровней.

В конце концов, вы хотите, чтобы это содержимое у вас под рукой.

Обычно вам нужно только определить правильное ... УСТРОЙСТВО;). Вы можете ls /dev/sd*увидеть, что там: какие буквы, какие цифры идентифицируют ваше УСТРОЙСТВО ...

А потом наберите

mkdir mydev
mount /dev/DEVICE mydev

(Вы можете оставить -t typeчасть)


Это легко читать и систематически одновременно. «Маунт» - это очень важное понятие. Все эти ответы показывают «проблему», особенно для дебютантов . «mount» - это команда unix. Многомерная. Только fork () более сложный.
Растафиле

Критика википедии о Linux: Когда-то системы Linux требовали, чтобы съемные носители, такие как дискеты и компакт-диски, монтировались вручную, прежде чем к ним можно было получить доступ. Монтирование носителей теперь происходит автоматически почти во всех дистрибутивах с развитием udev.
растафиле
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.