Монтирование диска в manjaro
Последний Manjaro KDE, свежеустановленный, максимально дефолтный, пытаюсь примонтировать шару с samba на NAS (мне надо для работы в терминале с шарой, через dolphin подключаюсь без проблем, но в отличие от наутилуса и его форков не монтирует через gfvs для работы с посторонним ПО).
Стоят пакеты samba и cifs-utils
Делаю каталог mkdir /mnt/nas/
Делаю mount -t cifs //192.168.1.40/Volume_1/Downloads /mnt/nas/ Получаю:
Password for sonic@//192.168.1.40/Volume_1/Downloads: mount error: cifs filesystem not supported by the system mount error(19): No such device Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Смотрю модуль lsmod | grep cifs - пусто
Подгружаю modprobe cifs
modprobe: FATAL: Module cifs not found in directory /lib/modules/4.14.21-1-MANJARO
insmod cifs insmod: ERROR: could not load module cifs: No such file or directory
Что ему надо и что делать?
Кстати, пробовал openSUSE Tumbleweed - там дельфин и браузерить самбу не может из коробки. Пока наиболее юзерфриендли самбу я увидел в Mint Cinnamon - вплоть до печати всё мышкой настраивается.
мне надо для работы в терминале с шарой
так и работай с тем каталогом, куда дельфин монтирует шару, в чём проблема-то?
а он не монтирует - он просто открывает.
если попытаешься в дельфине сделать «Открыть тут терминал» - он открывает home, даже не сообщая что возникла проблема.
а он не монтирует - он просто открывает
хм, как он может открыть, не монтируя?)
Здравствуйте, а файл /sbin/mount.cifs у Вас есть в системе? Я не знаком с Вашим дистрибутивом, но, например, в Gentoo он устанавливается вместе с Samba, а в Debian и его производных нужно ставить отдельный пакет cifs-utils.
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) dev on /dev type devtmpfs (rw,nosuid,relatime,size=1997032k,nr_inodes=499258,mode=755) run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755) /dev/sda2 on / type ext4 (rw,noatime,data=ordered) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=43,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=11287) configfs on /sys/kernel/config type configfs (rw,relatime) tmpfs on /tmp type tmpfs (rw,nosuid,nodev) mqueue on /dev/mqueue type mqueue (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M) debugfs on /sys/kernel/debug type debugfs (rw,relatime) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime) tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=400720k,mode=700,uid=1000,gid=1001) fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime) gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1001)
последнее куда монтирует наутилус, там пусто при открытом дельфине - и я не могу понять куда тогда он монтирует. если постаить наутилус и им сделать монтирование - тогда да.
Разделы дисков в Linux подключаются к системе совсем не так, как в Windows. Здесь есть корневая файловая система, куда подключаются все другие разделы и устройства, которые вы будете использовать. Системные разделы монтируются автоматически при старте системы. Но если вам нужно подключить дополнительные разделы, в некоторых случаях, может понадобиться это делать вручную.
В этой статье мы рассмотрим как выполняется монтирование диска в Linux, поговорим о том, как правильно использовать утилиту mount, umount и посмотреть какие разделы куда примонтированы.
Как просмотреть все диски и точки монтирования
Для этого используйте уже знакомую нам команду:
Размонтирование устройств в Linux
Когда вы хотите завершить работу с устройством, особенно с флешкой, его нужно размонтировать. Для этого существует утилита umount. В качестве параметров она принимает точку монтирования или устройство. Например:
sudo umount /mnt
Теперь ваше устройство не смонтировано. Но иногда может возникнуть ошибка размонтирования. Система сообщит, что устройство занято: umount: /mnt: target is busy.
Проблему можно решить закрыв все программы, которые могут использовать любой файл в этой папке. Какие именно это программы вы можете узнать с помощью команды lsof:
lsof -w /mnt
$ lsof -w /dev/sdb6
Здесь вы видите всю необходимую информацию, чтобы понять что происходит и что с этим делать. Утилита вывела название программы, ее PID, и даже файл, с которым она работает. Вы можете завершить все программы, а потом снова повторить попытку или используйте опцию -l, файловая система будет отключена немедленно, несмотря на то, что она занята:
sudo umount -l /mnt
EXT2/3/4 Mount options
Автоматическое монтирование диска при загрузке Linux
Диски для монтирования при запуске Linux прописаны в файле /etc/fstab.
Допустим, я хочу при загрузке монтировать диск /dev/sda в директорию /mnt/disk_d/. При этом я хочу чтобы диск был доступен для чтения и записи пользователем. Тогда я создаю каталог — точку монтирования:
Открываю файл /etc/fstab:
и дописываю туда следующую строчку:
В этой строке вам нужно заменить
- /dev/sda — на диск, который вы желаете смонтировать
- /mnt/disk_d — на вашу точку монтирования, которую вы выбрали для своего диска.
- ext4 — на файловую систему вашего диска
Если вы не уверены в файловой системе или её обозначении, то выполните команду:
В результате диск будет автоматически монтироваться при каждом старте системы.
Чтобы ваш пользователь имел доступ к этой папке без необходимости повышать свои привилегии, выполните команду:
Можно более тонко настроить права доступа — например, создав группу, только члены которой будут иметь доступ к диску.
Обратите внимание, что если вы что-то неправильно сделали в файле /etc/fsta, то система не сможет загрузиться в графический интерфейс и вам придётся всё исправлять из консоли. Ссылка на дополнительную инструкцию в конце этой статьи.
Для проверки записей в файле /etc/fstab используйте команду
На скриншоте можно увидеть, что диск с UUID равным 26FC3023FC2FEC2D является недоступным (unreachable). Это может означать, что запись в файле /etc/fstab имеет ошибку. Но в данном случае диск с UUID=26FC3023FC2FEC2D — это съёмный диск, для его монтирования указана опция nofail (не вызывать фатальную ошибку, даже если диск отсутствует), поэтому предупреждение можно проигнорировать.
Для вывода более подробной информации добавьте опцию --verbose:
Все пункты успешно прошли проверку, рассмотрим более подробно записи проблемного диска:
- /mnt/disk_e — точка монтирования
- [ ] target exists — целевая папка (точка монтирования), существуют, то есть директория /mnt/disk_e имеется в системе
- [ ] VFS options: rw — найдена такая опция монтирования как rw, то есть диск монтируется для чтения и для записи. VFS — это опции ядра, системных вызовов. Эти опции одинаковы для всех файловых систем.
- [ ] FS options: utf8 — найдена опция, специфичная для данной файловой системы. Этой опцией является utf8, то есть для преобразования имён файлов будет использоваться кодировка UTF-8.
- [ ] userspace options: noauto,nofail — здесь перечислены опции пользовательского пространства. Опция noauto означает не монтировать автоматически, а опция nofail означает не сообщает об ошибках для этого устройства, если оно не существует — эта опция важна для съёмных носителей и сетевых дисков, которые могут отсутствовать во время загрузки компьютера.
Монтирование разделов с помощью mount
Монтирование разделов с помощью mount выполняется очень просто. Фактически в большинстве случаев будет достаточно упрощенной версии команды. Например, смонтируем раздел /dev/sdb6 в папку /mnt:
sudo mount /dev/sdb6 /mnt/
В большинстве случаев вы будете вынуждены выполнять команду mount с правами суперпользователя, если обратное не указано в fstab (опция монтирования users). Вы можете посмотреть информацию о процессе монтирования добавив опцию -v:
sudo mount -v /dev/sdb6 /mnt/
Если нужно, вы можете указать файловую систему с помощью опции -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:
Посмотреть uuid для ваших разделов можно с помощью команды:
Точно так же вы можете использовать метки. Команда монтирования диска linux будет выглядеть так:
sudo mount --label="home" /mnt/
Вы можете примонтировать одну папку в другую, для этого используйте опцию --bind
sudo mount --bind /mnt/ /media/
Возможно, не только монтирование разделов linux, но и монтирование файлов, если они содержат файловую систему, например, образов дисков. Монтирование образа диска linux работает точно так же:
sudo mount ~/file.iso /mnt
Посмотреть список всех примонтированных устройств можно просто выполнив mount без параметров:
Монтирование и размонтирование дисков
С дисками в /dev/ нельзя работать напрямую, то есть нельзя на них записывать файлы или копировать с них файлы. Для работы с ними их нужно смонтировать. Это делается командой mount.
Диск подключается к точке монтирования и уже в этой папке можно работать с содержимом диска.
Эта концепция может показаться непривычной пользователям Windows, но это очень удобно! Диск можно смонтировать в любую папку. Например, домашняя папка может быть на другом диске — удобно при переустановке системы — данные не нужно копировать в безопасное место, поскольку они уже на другом диске.
Для монтирования используется команда вида:
Допустим, я хочу, чтобы новый диск был подключён (смонтирован) к папке /mnt/disk_d. Название можно выбрать любое и точка монтирования необязательно должна быть в директории /mnt/ - можно сделать в домашней папке или в любой другой.
Начинаем с создания директории, в которую будет смонтирован диск:
Разрешаем доступ всем в этот диск, чтобы обычный пользователь также мог смотреть и записывать туда файлы:
На самом деле, права доступа можно настроить более тонко — без полного разрешения для всех.
Для размонтирования диска используется любая из двух команд:
Подключение съёмного носителя (флешки, внешнего диска) в Linux
Между прочим, многие дистрибутивы Linux при подключении USB флешки или внешнего диска автоматически их монтируют. Автоматическое монтирование обычно является функцией окружения рабочего стола. То есть на одном и том же дистрибутиве Linux, но с разными рабочими столами (версии Linux Mint как пример) автомонтирование может иметься или отсутствовать.
Если этого не произошло, значит нужно смонтировать вручную. Этот процесс ничем не отличается от обычного монтирования дисков: также создайте точку монтирования и используйте команду mount.
Съёмные носители можно монтировать через /etc/fstab, для этого даже есть специальная опция nofail — игнорировать ошибки, если диск отсутствует.
Форматирование разделов
Для форматирования в ext4:
Для форматирования в ext3:
Для форматирования в ext2:
Для форматирования в FAT32:
Мой пример (я не стал разбивать диск на разделы):
Кстати, если вы хотите отформатировать раздел, который уже используете, то его нужно сначала отмонтировать (об этом дальше).
Как удалить разделы диска
Если вы хотите удалить всё содержимое диска, в том числе его разбивку на разделы, то это делается так:
Откройте диск в gdisk:
Для перехода в экспертный режим там введите
Затем для удаления GPT введите
Дважды согласитесь, чтобы полностью очистить диск.
Как происходит монтирование?
Файловая система Linux очень сильно отличается от Windows, здесь нет дисков. Есть только корневая файловая система, которая строиться путем монтирования всех нужных разделов в подкаталоги корня.
Монтирование может быть выполнено вручную с помощью команды mount и мы об этом уже говорили. Но для инициализации системы нужно во время загрузки подключить все важные разделы с системными файлами, проверить их файловые системы на ошибки и сделать их готовыми к работе.
Все эти задачи выполняет система инициализации, независимо от того используете ли вы OpenRC или Systemd. Но сама система инициализации не знает куда монтировать тот или иной раздел. Для получения этой информации она использует конфигурационные файлы.
Системы инициализации, совместимые с SysVinit используют файл /etc/fstab. Новая система инициализации Systemd сохранила поддержку /etc/fstab для совместимости, но на самом деле работает с файлами юнитов *.mount. Во время загрузки файлы юнитов автоматически генерируются для всех записей /etc/fstab.
В этой статье мы рассмотрим как настроить автомонтирование разделов fstab, так и новый способ, с помощью systemd.
Автоматическое монтирование в Systemd
Система инициализации Systemd анализирует /etc/fstab при загрузке и автоматически генерирует все нужные файлы юнитов на основе описанных там точек монтирования, а уже потом их загружает.
Вы можете посмотреть все созданные в systemd точки монтирования такой командой:
systemctl -l --type mount
Но нам ничего не мешает самим создать такой файл точки монтирования. Это очень просто, давайте рассмотрим синтаксис:
[Mount]
What=адрес_раздела
Where=точка монтирования
Type=файловая система
Options=опции монтирования
Например, для той же домашней папки автоматическое монтирование fstab будет выглядеть вот так, имя обязательно должно состоять из точки монтирования, в которой слеши заменены на дефис:
sudo vi /etc/systemd/system/home.mount
[Unit]
Description=Mount System Home Directory
[Mount]
What=/dev/sda3
Where=/home
Type=ext4
Options=defaults,noexec
Точно такой же файл может быть создан для любого устройства. Теперь для монтирования достаточно набрать:
sudo systemctl start home.mount
А чтобы добавить эту точку монтирования в автозагрузку выполните:
sudo systemctl enable home.mount
Вот и все теперь вы знаете не только как выполняется монтирование fstab, но и автоматическое монтирование в systemd.
Автоматическое монтирование fstab
Каждая строчка в fstab описывает раздел, который нужно примонтировать к определенной точке монтирования. Мы можем указать файловую систему, опции монтирования, а также нужно ли проверять файловую систему на ошибки.
Сначала давайте рассмотрим синтаксис одной строчки fstab:
устройство точка_монтирования файловая_система опции резерв проверка
Теперь подробнее рассмотрим что означает каждый пункт:
- Устройство - это раздел диска, который вам нужно примонтировать. Его можно указать в формате файла устройства Linux в каталоге /dev/, например, /dev/sda1 или с помощью уникального идентификатора UUID, тогда формат записи будет таким UUID="XXXX-XXXX-XXXX-XXXX", также возможна запись с помощью метки, например, LABEL=home;
- Файловая система указывает в какой файловой системе нужно монтировать это устройство, например, ext4, ext3, ext2, btrfs;
- Точка монтирования - куда нужно примонтировать это устройство, например, /home, /boot, /mnt;
- Опции - параметры монтирования файловой системы, рассмотрим подробнее ниже;
- Проверка - указывает в какой очереди нужно проверять устройство на ошибки, 1 - в первую очередь, 2 - вторую, 0 - не проверять;
- Резерв - указывает нужно ли делать резервную копию раздела, может принимать значения только 0 и 1.
В основном с этими пунктам все должно быть понятно, интерес вызывают только опции монтирования fstab. Для разных файловых систем они могут немного отличаться, но есть стандартные. И поскольку чаще всего используются файловые системы семейства ext, то мы будем ориентироваться на них.
Начнем с общих для всех файловых систем опций:
- sync - записывать на диск все изменения сразу после того, как они были выполнены, не использовать кэширование для записываемых данных. Может понадобится для извлечения флешки без размонтирования, но сильно снижает производительность;
- async - использовать кэш при записи данных, увеличивает производительность, используется по умолчанию;
- atime - сохранять время последнего доступа к файлу;
- noatime - не сохранять время последнего доступа, полезно для ssd и флешек;
- relatime - обновлять время доступа только при изменении файла, необходимо для работы многих программ;
- norelatime - отключить relatime;
- strictatime - обновлять время доступа всегда, отключает действие предыдущих опций;
- auto - автоматически монтировать при загрузке, действие по умолчанию;
- noauto - не монтировать при загрузке;
- defaults - использовать опции монтирования fstab по умолчанию - rw,suid,dev,exec,auto,nouser,async;
- dev - интерпретировать блочные устройства;
- nodev - не интерпретировать блочные устройства;
- diratime - аналогично atime только для каталогов;
- dirnoatime - аналогично noatime, для каталогов;
- exec - разрешить выполнять программы на этом разделе;
- noexec - запретить выполнять программы на этом разделе;
- group - разрешить другим пользователям кроме root монтировать этот раздел, если их группа совпадает с указанной, обычно используется вместе с noauto;
- nofail - не сообщать об ошибках;
- mand - разрешить блокирование файловой системы, нужно для некоторых антивирусов;
- nomand - запретить блокирование файловой системы;
- suid - разрешить выполнение программ с флагом suid от имени другого пользователя;
- nosuid - игнорировать флаг suid;
- owner - разрешить указанному пользователю монтировать устройство;
- ro - монтировать только для чтения;
- rw - монтировать для чтения и записи;
- users - разрешить монтирование любому пользователю;
- umask - установить права доступа к файлам и папкам на этом разделе;
- uid - задает владельца каталога, по умолчанию root;
- gid - задает группу владельца каталога.
Когда мы рассмотрели всю теорию, настройка fstab не вызовет у вас проблем. Теперь давайте рассмотрим стандартное содержимое файла fstab, а также как выполняется монтирование. Вот так выглядит монтирование корня:
/dev/sda2 / ext4 defaults 0 1
Здесь в качестве корневой файловой системы будет монтироваться раздел /dev/sda2 с файловой системой ext4 и опциями по умолчанию defaults. Резервная копия не используется, и вообще, этот параметр не читается системой инициализации и сейчас нас не интересует. Для домашнего раздела все будет выглядеть очень похоже:
/dev/sda3 /home ext4 defaults,noexec 0 2
Только тут мы указали, что его нужно проверить вторым, а в опциях еще добавили, что программы оттуда выполнять нельзя. Более интересен пункт для дополнительного диска, на котором хранятся файлы:
/dev/sda4 /media/files/ ext4 noauto,users,rw 0 0
Тут мы указываем, что раздел не нужно монтировать во время загрузки, но его могут подключить любые пользователи в режиме для чтения и записи. Ни проверка ни резервная копия не выполняются. Для раздела подкачки файловая система указывается swap, а точка монтирования none:
/dev/sda5 none swap defaults 0 0
Также вы можете примонтировать немножко оперативной памяти:
tmpfs /tmp tmpfs nodev , nosuid , noexec , size=100M 0 0
Таким образом, мы примонтировали оперативную память в /tmp и теперь система будет работать немного быстрее. Вот что получилось:
/dev/sda2 / ext4 defaults 0 1
/dev/sda3 /home ext4 defaults,noexec 0 2
/dev/sda4 /media/files/ ext4 noauto,users,rw 0 0
/dev/sda5 none swap defaults 0 0
tmpfs /tmp tmpfs nodev,nosuid,noexec,size=100M 0 0
А теперь, как я и обещал рассмотрим как выполняется монтирование с помощью systemd.
Выводы
В этой статье мы рассмотрели как выполняется монтирование жестких дисков linux, а также разделов и даже образов. Вы знаете как правильно использовать опции mount и umount. Если у вас остались вопросы, спрашивайте в комментариях!
Как вы знаете, во время загрузки операционной системы Linux все используемые разделы собираются в единую корневую файловую систему. Все это выполняется системой инициализации и пользователь даже не замечает переходов между разделами. Например, домашний раздел монтируется в /home, загрузочный в /boot.
Но откуда система инициализации узнает о том, что и куда нужно монтировать? Все просто, она берет эти данные из файла /etc/fstab. В этой небольшой статье мы рассмотрим как выполняется автоматическое монтирование fstab, поговорим как это работает, а также рассмотрим основные опции монтирования файловых систем.
Pass number
This field is used by fsck(8) to determine the order in which filesystem checks are done at boot time. The root filesystem should be specified with a fs_passno of 1. Other filesystems should have a fs_passno of 2. Filesystems within a drive will be checked sequentially, but filesystems on different drives will be checked at the same time to utilize parallelism available in the hardware.
Defaults to zero (don’t check the filesystem) if not present.
The default setup will automatically `fsck` and `mount` filesystems before starting services that need them to be mounted. For example, systemd automatically makes sure that remote filesystem mounts like NFS or Samba are only started after the network has been set up. Therefore, local and remote filesystem mounts specified in `/etc/fstab` should work out of the box. See
В этой небольшой заметке я покажу на практическом примере, как работать с дисками в Linux.
Заключение
Если у вас ещё остались вопросы, то задавайте их в комментариях.
Ещё несколько советов и проблемных случаев рассмотрено в статье «Работа с дисками в BlackArch (монтирование, решение проблем)» - эта статья подходит для всех дистрибутивов, не только BlackArch.
Filesystem Type
This field describes the type of the filesystem. Linux supports many filesystem types: ext4, xfs, btrfs, f2fs, vfat, ntfs-3g (for Windows compatibility), hfsplus (for Mac Compatibility), tmpfs, sysfs, proc, iso9660 (to allow you to mount CD/DVD ISO files as Read-Only directories), udf, squashfs, nfs, cifs, and many more.
An entry swap denotes a file or partition to be used for swapping. An entry none is useful for bind or move mounts.
More than one type may be specified in a comma-separated list.
Using the same example fstab file and "Win-Data" line as above, ntfs-3g is the file system we're mounting this one under although the blkid shows ntfs . This is simply because the ntfs driver is a read-only driver (allowing you to see your Windows files, but not modify them, whereas the ntfs-3g (for 3rd generation) allows most NTFS options (except encryption) thus also read-write capabilities:
FAT Mount options
Filesystem Specification
This field describes one of each of the following:
- the block special device
- remote filesystem
- filesystem image for loop device to be mounted
- swap file or swap partition to be enabled
This field generally takes the form of:
to uniquely identify a filesystem you want to mount. As a UUID is necessarily unique, you will find that this is the default in use on more modern systems whereas a device name and label are only in use on older systems, so we'll concentrate on UUIDs in this tutorial, but know that if you insist on using these order systems, they still work at the time of this writing.
To get the UUID for all of your devices, execute the command blkid elevated to root:
and you'll get someting like this:
Any one of the output of blkid can be used as the first field in the fstab file.
E.G. all of the following lines are valid entries for the first line of the output of the above example:
I.E. only one of the above lines should be present in your fstab file to mount the ESP partition, but any of them will work! However it is strongly recommended to use the UUID as that is globally unique!. This means that if your move a disk to another machine, it will keep its UUID and there is no opportunity for surprises like the computer you've moved the existing disk to suddenly:
Что такое монтирование?
Как я уже сказал Linux имеет единую корневую файловую систему, куда подключаются все запоминающие устройства и другие ресурсы. На самом деле, в Windows происходит что-то подобное, только все это скрыто от пользователя.
Фактически смонтированный раздел становится частью корневой файловой системы и система старается сделать работу со всеми разделами, независимо от их файловых систем, прозрачной. Это значит, что если вы примонтируете участок оперативной памяти или удаленную сетевую папку, то сможете работать с ней в файловом менеджере точно так же, как и с локальным диском.
Например, вы хотите примонтировать флешку. Вы даете системе команду подключить ее в папку /run/media/имя_пользователя/UUID_флешки/. Система определяет файловую систему устройства, а затем, используя драйвера ядра подключает ее к указанной папке. Дальше вам остается работать с той папкой, как с любой другой. Больше ни о чем думать не нужно. Когда надумаете извлечь флешку, ее нужно отмонтировать.
Разметка дисков (разделение на разделы) в Linux
В консоли диск можно разбить на разделы командой cfdisk. После неё укажите имя диска, с которым вы хотите выполнить действия:
Диск может быть GPT или MBR (показывается как dos). Вы без труда найдёте множество информации об этих таблицах разделов в Интернете. Только отмечу, что GPT является более современной и имеет больше возможностей. Поэтому если не нужно работать со старым железом, которое понимает только MBR, то выбираем GPT.
Для создания диска выберите Новый:
Введите его размер.
Если нужно, поменяйте тип раздела:
Затем переместитесь вниз на свободное место и повторяйте эти действия по созданию разделов. Когда закончите, выберите Запись.
Активация диска в Linux
Предположим вы подключили новый диск, на котором ещё нет файловой системы. Система его не видит и нам нужно выполнить команды для его подключения.
Скажу сразу, все описанные здесь действия можно выполнять в командах с графическим интерфейсом. Я же буду размечать и форматировать диски в командной строке — это более универсальный способ, так как позволяет настроить диски и разделы даже в операционных системах, на которых нет графического окружения.
При подключении нового диска нам нужно:
- разметить его на разделы
- отформатировать каждый раздел для создания файловой системы
- смонтировать диск для возможности записи и чтения данных
- настроить автоматическое монтирование при включении компьютера
Как узнать имена дисков, как просмотреть все диски в системе
Начать нужно с того, чтобы узнать имя диска, который мы будем изменять. В Linux совсем непохожая на Windows система обозначения дисков. Вместо привычных дисков C, D, E и так далее, в Linux диски это устройства в папке /dev/. В dev вообще все возможные устройства, даже весьма экзотические, не существующие в Windows.
Чтобы посмотреть доступные диски, выполните команду:
Как видно из скриншота, имеется диск /dev/nvme0n1. Затем перечислены два устройства /dev/nvme0n1p1 и /dev/nvme0n1p2. По совпадающему части названия nvme0n1 можно понять, что это разделы, на которые разделён диск /dev/nvme0n1.
Также имеется диск /dev/sda, который не разделён ни на какие разделы — именно его я и буду подключать.
Mount options
This field describes the mount options associated with the filesystem.
It is formatted as a comma-separated list of options. It contains at least the type of mount (ro or rw), plus any additional options appropriate to the filesystem type (including performance-tuning options).
- defaults: use default options: rw, suid, dev, exec, auto, nouser, and async.
- noauto: do not mount when mount -a is given (I.E. at boot time)
- user: allow any user to mount (I.E. no sudo needed)
- owner: Only allow device owner to mount
- comment: or x- for use by fstab-maintaining programs
- nofail: do not report errors for this device if it does not exist.
Выводы
The /etc/fstab root-owned configuration file is used to define how disk partitions, various other block devices, or remote filesystems should be mounted into the filesystem.
Each filesystem is described in a separate line. These definitions will be converted into systemd mount units dynamically at boot, or when the configuration of the system manager is reloaded.
The mount --all command will mount all filesystems mentioned in fstab , (except for those whose line contains the noauto keyword). The filesystems are mounted following their order in fstab . The mount command compares filesystem source and target to detect already mounted filesystems. The kernel table with already mounted filesystems is cached during mount --all . This means that all duplicated fstab entries will be mounted.
Each line in the file describes a filesystem, and contain fields (specified in columns) used to provide information about its mountpoint, the options which should be used when mounting it etc. Each field can be separated from one another either by spaces or tabs:
Each column in the above are the fstab "fields" and will be explained in the next section.
Перемонтирование диска с правами записи
Иногда диски монтируются только с правами чтения. В этом случае можно скопировать файлы с диска, но нельзя на него что-либо записать или удалить. Перемонтировать диск на запись можно одной командой:
В ней /dev/sdb1 замените на имя вашего раздела.
Если вы столкнулись с ошибкой:
То нужно выполнить команду (замените /dev/sdb1 на ваш раздел):
После этого перемонтируйте диск.
Обратите внимание, что если вы монтируете диск с файловой системой NTFS, то у вас должен быть установлен пакет ntfs-3g, иначе что бы вы не делали, диск будет только для чтения.
Mount Point
This field describes the mount point (target) inside your filesystem. For swap partitions, this field should be specified as `none'. If the name of the mount point contains spaces or tabs these can be escaped as `\040' and '\011' respectively.
In the example fstab file above, the following line in it's blkid output:
- is the Windows D: Drive
- has an NTFS label of "Win-Data"
- has a Windows UUID of "634E43D367B0A4B1" (different from Linux UUIDs)
- contains the NTFS File System
- has a partition UUID of "ca8d0663-6a6e-4b09-a0d7-05b59d109ab1"
and gets mounted on the /media/Data according to this line:
NTFS-3G Mount options
This field must be 1 or 0 and is used by dump to determine which filesystems need to be dumped in case of a coredump (=crash). Defaults to zero (don’t dump) if not present.
Монтирование дисков в 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.
Читайте также: