Перейти к содержимому

Автоматическое монтирование дополнительных дисков через fstab при загрузке

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

Необходимые условия

  • Права root

Добавление записей в /etc/fstab

1. Перечислите UUID ваших разделов

В эмуляторе терминала по вашему выбору (Konsole, Alacritty, Kitty и т. д.) выполните следующее:

Окно терминала
lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
zram0 [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 -l
Device 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 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'

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

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

Дополнительная литература