How to mount a device in Linux?
I read some resources about the mount command for mounting devices on Linux, but none of them is clear enough (at least for me). On the whole this what most guides state:
$ 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
- How do I know what to use for «device» as in $ mount -t type device directory ? That is, how do I know that I should use «/dev/sdb1» in this command $ mount -t vfat /dev/sdb1 /media/disk to mount my USB drive?
- what does the «-t» parameter define here? type?
I read the man page ( $ man mount ) a couple of times, but I am still probably missing something. Please clarify.
@rozcietrzewiacz I must admit that my mind didn’t work properly. When @Let_Me_Be was referring to /dev/disk/by-id I thought «by-id» was to be replaced by something and should be issued as a command. It didn’t strike my mind that it could actually be a directory. This probably happens to Windows -> Linux users in their initial phase! (or it’s only me :))
Drop the -t type . mount will normally figure it out and generally if it can’t, it’s a reasonable indication you are doing something wrong.
@AlexChamberlain I can see I got carried. My apologies to @its_me. I should have written «If you’d really read the manual, you wouldn’t ask about the -t option». The other part of the question (how to determine, which device is represented by a /dev/ entry) is very reasonable.
10 Answers 10
You can use fdisk to have an idea of what kind of partitions you have, for example:
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
That way you know that you have sda1,2 and 3 partitions. The -t option is the filesystem type; it can be NTFS, FAT, EXT. In my example, sda1 is ntfs, so it should be something like:
USB devices are usually vfat and Linux are usually ext.
I am on a fedora VM (Windows 7 host). I just plugged in a usd drive (Windows doesn’t recognize it because the VM is running) and issued the command $ fdisk -l . But it only lists Linux and Linux LVM file systems (only two). Not vfat, ntfs, hpfs or ext etc.
Maybe this is not a mount issue, but a device recognition problem. Take a look at /var/log/message file, it should show if there is any problem with the USB device.
So, normally is this how I should find it on a running linux system: plugin a pen drive (example), issue the command # fdisk -l and find the device (/dev/*) & its filesystem (vfat, ntfs, hpfs, ext etc). Right?
Usually, yes. If you’re running gnome, it mount usb and external hard drives but itself without manually mount. It shows a popup window just like Windows does.
One last doubt. Are these the only common filesystem device files: /dev/sd* or /dev/hd* are for hard disks, /dev/cdrom for CD-ROMs and /dev/fd* for floppies. Anything else?
I was really rusty on this, and then it started coming back.. if this doesn’t answer your question, maybe I misread it.
Alibi: this is on an Ubuntu 14 release. Your mileage may vary.
I use lsblk to get my mount points, which is different from mount For me lsblk is easier to read than mount
Make sure that you have a directory created before you go to mount your device.
sudo mkdir / sudo mount /dev/ /
You should be good to go, however check security permissions on that new directory to make sure it’s what you want.
These days, you can use the verbose paths to mount a specific device.
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
Run the ls -l /dev/disk/by-id/ command to see the possibilities.
Where can I find more information about this? I am not yet into this «verbose thing» on Linux, so it’s confusing.
@Aahan Well, these are just symlinks to /dev/sd* . There are /dev/disk/by-id (device/partition ID), /dev/disk/by-uuid (device/partition UUID — not very useful for manual use), /dev/disk/by-path (depends on how the device is connected), /dev/disk/by-label (partition label if present)
@Aahan Well, that is what the device reports. Id will be the device name or model or serial number, or a combination. Path will be the same, but reported for the way the disk is connected, so it will be for example pci-0000:00:1f.2-scsi-3:0:0:0-part3 (pci device 0000:00:1f.2, third port, third partition), label will be label, uuid is computer generated unique id (you will use that if you will want a form of identification that won’t change).
When you were referring to /dev/disk/by-id I thought «by-id» was to be replaced by something and should be issued as a command. It didn’t strike my mind that it could actually be a directory. Thanks for being patient with me. LOL, I was ridiculous 🙂
How come we have many ways to do this but as always we also take into consideration and do not know where the file system used in the device may hinder a little, but we can use the «auto» option to give a little help.
mount -t auto /dev/sdb1 /media/pendrv
and ready our device will be mounted: at /media/pendrv ready to use, then simply use:
mount (the command) usually figures out the «type» of the file system on the device. I think the hard part if figuring out the device file name. You almost have to know the disk drive naming conventions to figure it out.
On an up-to-date Arch linux box:
133 % ls /dev/sd?? /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4 /dev/sdb1 /dev/sdb2
But that doesn’t work on a mature (2.6.20.9) Slackware box:
1 % ls /dev/sd?? zsh: no matches found: /dev/sd?? 2 % ls /dev/hd?? /dev/hda1 /dev/hda2
Without knowing in advance that /dev/sd* or /dev/hd* are hard disk device files, you have to use lspci or lsusb or something to figure out the device file name. USB devices often leave information in /var/log/messages to help you figure out what device file udev assigned to them.
Монтирование диска в Linux
Разделы дисков в Linux подключаются к системе совсем не так, как в Windows. Здесь есть корневая файловая система, куда подключаются все другие разделы и устройства, которые вы будете использовать. Системные разделы монтируются автоматически при старте системы. Но если вам нужно подключить дополнительные разделы, в некоторых случаях, может понадобиться это делать вручную.
В этой статье мы рассмотрим как выполняется монтирование диска в Linux, поговорим о том, как правильно использовать утилиту mount, umount и посмотреть какие разделы куда примонтированы.
Что такое монтирование?
Как я уже сказал Linux имеет единую корневую файловую систему, куда подключаются все запоминающие устройства и другие ресурсы. На самом деле, в Windows происходит что-то подобное, только все это скрыто от пользователя.
Фактически смонтированный раздел становится частью корневой файловой системы и система старается сделать работу со всеми разделами, независимо от их файловых систем, прозрачной. Это значит, что если вы примонтируете участок оперативной памяти или удаленную сетевую папку, то сможете работать с ней в файловом менеджере точно так же, как и с локальным диском.
Например, вы хотите примонтировать флешку. Вы даете системе команду подключить ее в папку /run/media/имя_пользователя/UUID_флешки/. Система определяет файловую систему устройства, а затем, используя драйвера ядра подключает ее к указанной папке. Дальше вам остается работать с той папкой, как с любой другой. Больше ни о чем думать не нужно. Когда надумаете извлечь флешку, ее нужно отмонтировать.
Монтирование дисков в Linux
Обычно, монтированием занимаются специальные сервисы оболочки, но не всегда они доступны. А иногда нужно сделать все вручную, чтобы задать дополнительные опции монтирования или другие параметры. Для монтирования в Linux используется команда mount. Рассмотрим ее параметры:
$ mount файл_устройства папка_назначения
$ mount опции -t файловая_система -o опции_монтирования файл_устройства папка_назначения
Опции задают различные дополнительные особенности работы утилиты. Опция -t необязательна, но она позволяет задать файловую систему, которая будет использована и иногда это очень полезно. С помощью опции -o вы можете задать различные параметры монтирования, например, монтировать только для чтения и т д. Последних два параметра — это файл устройства, например, /dev/sda1 и папка назначения, например, /mnt.
Перед тем как перейти к рассмотрению примеров работы утилитой, давайте рассмотрим ее основные опции:
- -V — вывести версию утилиты;
- -h — вывести справку;
- -v — подробный режим;
- -a, —all — примонтировать все устройства, описанные в fstab;
- -F, —fork — создавать отдельный экземпляр mount для каждого отдельного раздела;
- -f, —fake — не выполнять никаких действий, а только посмотреть что собирается делать утилита;
- -n, —no-mtab — не записывать данные о монтировании в /etc/mtab;
- -l, —show-labels — добавить метку диска к точке монтирования;
- -c — использовать только абсолютные пути;
- -r, —read-only — монтировать раздел только для чтения;
- -w, —rw — монтировать для чтения и записи;
- -L, —label — монтировать раздел по метке;
- -U, —uuid — монтировать раздел по UUID;
- -T, —fstab — использовать альтернативный fstab;
- -B, —bind — монтировать локальную папку;
- -R, —rbind — перемонтировать локальную папку.
Это не все, но основные опции, которые вам понадобятся во время работы с утилитой. Также, возможно, вы захотите знать список опций монтирования, которые могут быть полезными. Они все перечислены в статье автоматическое монтирование в fstab и писать их еще и здесь нет смысла. А теперь перейдем к примерам и рассмотрим как монтировать диск в linux.
Монтирование разделов с помощью mount
Монтирование разделов с помощью mount выполняется очень просто. Фактически в большинстве случаев будет достаточно упрощенной версии команды. Например, смонтируем раздел /dev/sdb6 в папку /mnt:
В большинстве случаев вы будете вынуждены выполнять команду mount с правами суперпользователя, если обратное не указано в fstab (опция монтирования users). Вы можете посмотреть информацию о процессе монтирования добавив опцию -v:
Если нужно, вы можете указать файловую систему с помощью опции -t:
sudo mount -v -t ext4 /dev/sdb6 /mnt
Если необходимо примонтировать файловую систему только для чтения, то вы можете использовать опцию -r или опцию монтирования -o ro, результат будет одинаковым:
sudo mount -t ext4 -r /dev/sdb6 /mnt
$ sudo mount -t ext4 -o ro /dev/sdb6 /mnt
Вы можете использовать и другие опции чтобы выполнить монтирование разделов linux, например, указать, что на этом разделе нельзя выполнять программы:
sudo mount -t ext4 -o noexec /dev/sdb6 /mnt
Обратите внимание, что вы не можете использовать опции uid, gid, fmask для файловых систем ext. Они поддерживаются только в FAT, vFAT, exFAT.
Вы можете использовать не только имена устройств чтобы выполнить монтирование диска в linux. Для этого можно применять UUID или метки, например, монтирование с помощью UUID:
sudo mount —uuid=»b386d309-05c1-42c8-8364-8d37270b69e0″ /mnt
Посмотреть uuid для ваших разделов можно с помощью команды:
Точно так же вы можете использовать метки. Команда монтирования диска linux будет выглядеть так:
Вы можете примонтировать одну папку в другую, для этого используйте опцию —bind
sudo mount —bind /mnt/ /media/
Возможно, не только монтирование разделов linux, но и монтирование файлов, если они содержат файловую систему, например, образов дисков. Монтирование образа диска linux работает точно так же:
Посмотреть список всех примонтированных устройств можно просто выполнив mount без параметров:
Размонтирование устройств в Linux
Когда вы хотите завершить работу с устройством, особенно с флешкой, его нужно размонтировать. Для этого существует утилита umount. В качестве параметров она принимает точку монтирования или устройство. Например:
Теперь ваше устройство не смонтировано. Но иногда может возникнуть ошибка размонтирования. Система сообщит, что устройство занято: umount: /mnt: target is busy.
Проблему можно решить закрыв все программы, которые могут использовать любой файл в этой папке. Какие именно это программы вы можете узнать с помощью команды lsof:
lsof -w /mnt
$ lsof -w /dev/sdb6
Здесь вы видите всю необходимую информацию, чтобы понять что происходит и что с этим делать. Утилита вывела название программы, ее PID, и даже файл, с которым она работает. Вы можете завершить все программы, а потом снова повторить попытку или используйте опцию -l, файловая система будет отключена немедленно, несмотря на то, что она занята:
Выводы
В этой статье мы рассмотрели как выполняется монтирование жестких дисков linux, а также разделов и даже образов. Вы знаете как правильно использовать опции mount и umount. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.