Примеры использования команды mount и umount в Linux

mount — утилита командной строки в UNIX-подобных операционных системах, применяется для монтирования файловых систем. В операционных системах Linux и UNIX вы можете использовать команду mount для подключения (монтирования) файловых систем и съемных устройств, таких как флэш-накопители USB, в определенной точке монтирования в дереве каталогов. Команда umount отсоединяет (размонтирует) смонтированную файловую систему от дерева каталогов.

  • Подключить удаленный сервер NFS (для FreeBSD):
    mount_nfs 10.0.144.1:/usr/ports/distfiles/ /usr/ports/distfiles
  • Монтирование сетевых папок (шар) Windows (для Ubuntu). Пароль и логи не заданы в Windows для шар. smbfs и cifs в принципе одно и тоже:
    # apt install smbclient smbfs
    в этом случае запросит пароль, так как его у нас нет добавим параметр -o password=
    # mount -t smbfs //10.26.95.12/keepbuh$ /mnt/keepbuh/ 
    # mount -t smbfs -o password= //10.26.95.12/keepbuh$ /mnt/keepbuh/

    Отмонтировать шару:

    # umount /mnt/keepbuh

Пропишем для автоматического монтирования при загрузке системы. В Ubuntu такой способ не заработал, хотя mount -a работает.

# nano /etc/fstab
...
#Share Buh
//10.26.95.12/keepbuh$ /mnt/backup.buh cifs auto,users,password=,ro,iocharset=utf8 0 0

Автозагрузка через rc.local

# nano /etc/rc.local
...
#Share
#/bin/mount -t smbfs -o ro,iocharset=utf8,password= //10.26.95.12/keepbuh$ /mnt/backup.buh
#OR
/bin/mount -t cifs -o ro,iocharset=utf8,password= //10.26.95.12/keepbuh$ /mnt/backup.buh

В виду того, что компьютеров в доме каждого из нас становится всё больше, а работают под Linux`ом далеко не все из них, регулярно возникает необходимость как-то налаживать взаимодействие между машинами в таких гетерогенных сетях. Об офисных сетях и говорить нечего: на рабочих компьютерах пока господствует Windows, а Linux, в основном, обитает на серверах (тем не менее, ситуация может и измениться).

К счастью, файлообмен в гетерогенных сетях задача вполне уже решенная, ведь есть Samba.

Предустановленных программ Ubuntu вполне достаточно, чтобы путешествовать по ресурсам Windows (в главном меню: Переход > Сеть > Сеть Windows). Но удобным может быть примонтировать удаленный сетевой ресурс (после чего вы сможете работать с файлами, расположенными на нём, как с локальными). Для этого есть команда smbmount из пакет smbfs (установите его: sudo apt-get install smbfs).

Примонтировать удаленный ресурс можно так:

smbmount //192.168.0.10/ShareDocs ~/Share -o rw,iocharset=utf8,codepage=cp866

Здесь 192.168.0.10 — IP-адрес компьютера с ресурсом (вместо IP можно использовать и имя компьютера); ShareDocs — имя ресурса на нём (задается в параметрах общего доступа, по умолчанию сопадает с именем расшаренной папки); ~/Share — точка монтирования (в данном случае, это директория Media в вашем домашнем каталоге, не забудьте при необходимости эту директорию создать перед монтированием mkdir ~/Share).

После ключа -o следуют опции: rw — запись и чтение (ro — только чтение); iocharset=utf8 — кодировка в который должен будет представлен общий ресурс; codepage=cp866 — кодировка держателя (сервера) общего ресурса (для общих ресурсов Windows требуется установит именно cp866).

Для ресурсов, закрытых паролем, пригодятся еще две опции: username=myname — устанавливает имя пользователя; password=mypasswd — собственно, пароль.

А вот так можно отмонтировать ресурс:

smbumount ~/Share

Если удаленный ресурс всегда доступен и часто требуется вам, то есть смысл примонтировать его на постоянной основе (чтобы он автоматически монтировался при каждой загрузке), добавив такую строку в файл /etc/fstab:

//192.168.0.10/ShareDocs /home/yourusername/Share cifs auto,users,rw 0 0

Устройства Loop: обычные файлы, смонтированные как файловая система. В Linux работа с образами дисков осуществляется через так называемые петлевые (loop) устройства. Образ привязывается к loop-устройству, после этого система может работать с этим устройством, как с обычным блочным.

Задача. Вы создали образ жесткого диска. Жесткий диск разбит на разделы. Вы хотите смонтировать один из разделов из файла образа.

Однако /dev/loop устройства не распознают разделы.

Для решения проблемы, при монтировании вы можете использовать параметры offset=и sizelimit=для ограничения диапазона в файле образа при монтировании с использованием замыкания на себя. Если вы разместите эту область точно на границах раздела, вы сможете смонтировать ее.

Вы можете определить размер и расположение разделов с помощью sfdisk. В этом примере взят образ Raw disk image MikroTik Cloud Hosted Router, который содержит 2 раздела разделами, нам нужно примонтировать второй раздел.

sfdisk в Ubuntu устанавливается вместе с пакетов fdisk, если fdisk нет, значит установим:

apt install fdisk
sfdisk -d chr.img
label: dos
label-id: 0x00000000
device: chr.img
unit: sectors
sector-size: 512
 
chr.img1 : start=          34, size=       65536, type=83, bootable
chr.img2 : start=       65570, size=      192478, type=83

Данные здесь находятся в блоках по 512 байт. Рассчитать параметры offset и sizelimit можно так:

echo $((65570 * 512)) $((192478 * 512))
 
33571840 98548736

Монтаж выполняется следующей командой:

mount -o loop,offset=33571840,sizelimit=98548736 /tmp/image /mnt

Практический пример использования minut offset вы можете посмотреть на примере скрипта Как установить MikroTik RouterOS (CHR) на VPS VDS

Монтировать ISO- образ в локальную директорию пользователя

$ sudo mount -o loop iso_file.iso $HOME/temp_mnt

Но как быть с образами других форматов - Nero, Alcohole 120%, Clone CD, …? Здесь все немного сложнее. Но, как правило, все сводится к двум действиям:

  1. конвертирование образа отдельного формата в .iso, используя специализированные для этого утилиты
  2. стандартное монтирование iso-образа

Утилиты Linux для конвертирования: nrg2iso, bchunk, mdf2iso, ccd2iso.

Монтирование нового жесткого диска HDD в Linux.

  • Проверим видит ли операционная система наш второй жесткий диск:
# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb3

Да, второй диск /dev/sdb, в моем случае на нем уже есть файловая система (разделы /dev/sdb1 /dev/sdb2 /dev/sdb3). Если ваш HDD не разбит, воспользуйтесь утилитой Использование fdisk.

# mkdir /home/keepraid1
# mount /dev/sdb1 /home/keepraid1/
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9,2G  310M  8,5G   4% /
udev                  2,0G  252K  2,0G   1% /dev
none                  2,0G     0  2,0G   0% /dev/shm
none                  2,0G   32K  2,0G   1% /var/run
none                  2,0G     0  2,0G   0% /var/lock
none                  2,0G     0  2,0G   0% /lib/init/rw
/dev/sda6             942M   18M  877M   2% /tmp
/dev/sda7              28G  343M   26G   2% /var
/dev/sda8              28G  554M   26G   3% /usr
/dev/sda9              75G  180M   71G   1% /home
/dev/sdb1             230G  188M  218G   1% /home/keepraid1
# umount /home/keepraid1

Настроим автоматическое монтирование партиции нового HDD через fstab. Для этого нам нужно узнать UUID новой партииции. Для получения этой информации используем утилиту blkid:

# cp /etc/fstab /etc/fstab.noraid1
# blkid
/dev/sda1: UUID="d49fa623-e131-45d4-a59c-7cc98191d536" TYPE="ext4" 
/dev/sda5: UUID="4a803b5c-0ff2-402b-a596-9a7e17c2b2bc" TYPE="swap" 
/dev/sda6: UUID="183761a2-6e46-4282-9334-5f4d43c25c51" TYPE="ext4" 
/dev/sda7: UUID="abb9ac60-5348-4259-91f1-482a1ce59b28" TYPE="ext4" 
/dev/sda8: UUID="db8adf38-6724-4dbc-9253-f63f2b054069" TYPE="ext4" 
/dev/sda9: UUID="d2c3ff60-2e1e-4f52-806e-24e901e0f86e" TYPE="ext4" 
/dev/sdb1: UUID="fe462740-4281-4de8-ada5-988b6d7e5aae" TYPE="ext4"

Прописываем в fstab нужные разделы добавленного жесткого диска.

# nano /etc/fstab
...
#RAID1
UUID=fe462740-4281-4de8-ada5-988b6d7e5aae /home/keepraid1 ext4    
defaults        0       2

Проверяем правильность изменений в файле fstab. Для этого запускаем команду mount с ключем а, если ошибок нет, то все хорошо. Если ошибки есть - читай мануал с самого начала!! :)

# mount -a
# df -h
Filesystem            Size  Used Avail Use% Mounted on
...
/dev/sdb1             230G  188M  218G   1% /home/keepraid1
PQ VPS сервера в 28+ странах.