Автоматическое монтирование дополнительных дисков через fstab при загрузке
В этом руководстве будут описаны основы использования файла fstab, расположенного в /etc/, для монтирования статических дисков во время загрузки. В нем будет кратко объяснено, как найти UUID раздела или диска, что делают некоторые параметры, и предложена дополнительная литература, если предоставленной информации будет недостаточно.
Необходимые условия
- Права root
Добавление записей в /etc/fstab
1. Перечислите UUID ваших разделов
В эмуляторе терминала по вашему выбору (Konsole, Alacritty, Kitty и т. д.) выполните следующее:
❯ lsblk -fNAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTSzram0 [SWAP]nvme0n1├─nvme0n1p1 vfat FAT32 E04D-9F05├─nvme0n1p2├─nvme0n1p3 ntfs 08A24E90A24E81E4 715.4G 50%├─nvme0n1p4 vfat FAT32 E09C-D4DA 628.1M 39% /boot├─nvme0n1p5 ext4 1.0 187a9f06-9411-48d9-b941-f03c2e605812 203.6G 47% /└─nvme0n1p6 ntfs
В нашем примере мы знаем, что хотим смонтировать раздел Windows, который имеет тип ntfs, и мы знаем, что примерно половина его пространства доступна. Таким образом, мы можем определить, что раздел, который мы хотим смонтировать, это nvme0n1p3
, а его UUID — 08A24E90A24E81E4
, с файловой системой ntfs
в этом примере.
2. Идентификация вашего раздела
Часто lsblk -f
предоставит всю информацию, необходимую для монтирования диска через /etc/fstab на этом этапе. Однако, если вы обнаружите, что информации недостаточно, вы можете выполнить следующее:
❯ sudo fdisk -lDevice Start End Sectors Size Type/dev/nvme0n1p1 2048 206847 204800 100M EFI System/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved/dev/nvme0n1p3 239616 2997384182 2997144567 1.4T Microsoft basic data/dev/nvme0n1p4 2997385216 2999482367 2097152 1G EFI System/dev/nvme0n1p5 2999482368 3905454079 905971712 432G Linux root (x86-64)/dev/nvme0n1p6 3905454080 3907026943 1572864 768M Windows recovery environment
Мы уже знаем наш UUID в этом примере, однако fdisk -l
может сделать его немного более понятным для нас, показав точный размер раздела (1.4T), а также его тип (Microsoft basic data).
Это должно сделать совершенно ясным для нас, что раздел, который мы хотим, это nvme0n1p3
с UUID 08A24E90A24E81E4
, как описано ранее. Мы знали это раньше, но теперь мы просто знаем это наверняка.
Как только вы будете уверены, что нашли правильный раздел, скопируйте UUID. Копирование из эмулятора терминала обычно выполняется с помощью ctrl+shift+C
.
3. Добавление записи в /etc/fstab
Теперь, когда мы получили UUID нашего раздела, пришло время открыть файл fstab.
Не стесняйтесь использовать текстовый редактор по вашему выбору, в этом примере мы будем использовать nano. Чтобы отредактировать файл fstab, его необходимо открыть от имени root:
❯ sudo nano /etc/fstab
Используя клавиши со стрелками, перейдите в нижнюю часть файла fstab, а затем на новой строке мы создадим нашу новую запись:
UUID=08A24E90A24E81E4 /media/windows ntfs3 defaults,nofail 0 0
Разбивка этой записи выглядит следующим образом:
-
UUID=08A24E90A24E81E4
Это файловая система, которую мы хотим смонтировать, идентифицированная по ее UUID. Существуют другие методы идентификации вашей файловой системы, хотя UUID, как правило, является самым безопасным. Дополнительные методы перечислены здесь. -
/media/windows
Стандарт иерархии файловой системы Linux гласит, что/media/
является правильным местоположением для монтирования съемных дисков.windows
указывает каталог, в который мы хотим смонтировать наш диск. Каждому диску, который мы хотим смонтировать, потребуется свой собственный каталог. -
ntfs3
Это тип файловой системы для нашей файловой системы. В нашем примере мы явно используем драйвер ядра ntfs3. Другими примерами могут бытьext4
,xfs
или аналогичные. Это явное объявление типа файловой системы можно заменить наauto
, чтобы позволить команде mount сделать наилучшее предположение. -
defaults,nofail
Параметры, которые мы хотим передать команде mount для этого диска.nofail
означает, что если этот диск не удастся смонтировать, это не вызовет ошибку во время загрузки. Загрузка продолжится как обычно.defaults
подразумевает стандартный набор логических параметров. Обычноrw
,ro
или аналогичные. -
первый 0
dump, это обычно устарело в современных системах. Оставление этого значения равным 0 ничему не повредит. Не стесняйтесь читать больше об этом здесь. -
второй 0
Это устанавливает порядок проверки файловой системы во время загрузки. Для корневого раздела (если только ваша корневая файловая система не btrfs или xfs, которые должны быть установлены в 0) это должно быть 1. Все остальные файловые системы в вашем fstab должны быть либо 0 (отключено), либо 2. Дополнительная информация здесь.
Параметры объяснены здесь и здесь гораздо более подробно.
Больше информации
В качестве отступления, все параметры после объявления типа файловой системы являются необязательными, если вы не изменяете их по сравнению со значениями по умолчанию.
Таким образом
UUID=<partition UUID> /media/foo somefs
и
UUID=<partition UUID> /media/foo somefs defaults 0 0
эквивалентны. somefs
, за которым ничего не следует, неявно означает somefs defaults 0 0
Важно для разделов Windows
Если вы следуете этому руководству с разделом Windows, ваши параметры должны быть uid=1000,gid=1000,rw,user,exec,umask=000
, заменив uid и gid на ваш идентификатор пользователя и идентификатор группы. Если вы не предоставите разрешения user и exec, Windows может заблокировать ваш диск, оставив вас неспособным что-либо изменить. Это может произойти независимо от разрешений, если вы не отключите быструю загрузку.
Если вы не установите umask=000, некоторые файлы могут быть недоступны для записи в зависимости от
4. Завершение
Если вы хотите смонтировать диск, для которого вы создали запись сейчас, вам необходимо выполнить следующее:
❯ sudo systemctl daemon-reload
а затем:
❯ sudo mount -a
Теперь ваш диск должен появиться в /media/windows
и будет появляться там при следующей загрузке, а также в дальнейшем.
❯ ls /media/windows'$Recycle.Bin' Linux SteamLibrary AMD Modding swapfile.sys Apps pagefile.sys 'System Volume Information' bootTel.dat PerfLogs Users Development ProgramData WiiU'Documents and Settings' 'Program Files' Windows DumpStack.log.tmp 'Program Files (x86)' XboxGames FanControl Recovery xiv_modding Games RetroArch-Win64 Intel 'Ship of Harkinian'
Если вы хотите создать ссылку на ваш недавно смонтированный диск в вашем домашнем каталоге, вы можете выполнить следующее
❯ ln -s /media/windows ~/Windows
Чтобы показать, что это сработало
❯ ls ~/Windows'$Recycle.Bin' Linux SteamLibraryAMD Modding swapfile.sysApps pagefile.sys 'System Volume Information'bootTel.dat PerfLogs UsersDevelopment ProgramData WiiU'Documents and Settings' 'Program Files' WindowsDumpStack.log.tmp 'Program Files (x86)' XboxGamesFanControl Recovery xiv_moddingGames RetroArch-Win64Intel 'Ship of Harkinian'
tl;dr
- Найдите UUID вашего раздела
lsblk -f
- Откройте /etc/fstab
sudo nano /etc/fstab
- Создайте запись в нижней части файла
UUID=<partition UUID> /media/foo somefs defaults 0 0
Заменив <partition UUID>
, foo
и somefs
на ваш UUID, каталог и файловую систему. например, ext4, а также установив любые другие параметры, которые вы можете захотеть после defaults, такие как _netdev
для NAS или nofail
для любого некритического диска.
- Перезагрузите ваш демон
❯ sudo systemctl daemon-reload
- Смонтируйте ваш диск
❯ sudo mount -a
Этот диск теперь смонтирован и будет монтироваться при загрузке в дальнейшем.
Дополнительная литература
- https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html - Стандарт иерархии файловой системы
- https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s11.html - FHS на
/media/
- https://linux.die.net/man/8/dump - руководство для
dump
- https://man.archlinux.org/man/fsck.8 - руководство для
fsck
- https://man.archlinux.org/man/fstab.5.en - man page для fstab
- https://wiki.archlinux.org/title/Fstab - Arch Linux wiki для fstab