АВТОМАТИЧЕСКОЕ МОНТИРОВАНИЕ РАЗДЕЛОВ ЖЕСТКОГО ДИСКА НА ПРИМЕРЕ ПАПКИ "/home"

Честно признаться, поводом для публикации этой статьи стала оплошность при установки любимой Убунты. Я, дурень, забыл в самом начале прикрутить один из дисков файлопомойки к "/home"... Ну и вот, теперь придется немного подзапариться. Задача заключается в том, чтобы автоматизировать процесс монтирования. Для этого нам придется подредактировать "/etc/fstab". Такой файлик есть в любом Linux-е, включая Android. 

Ну что ж, поехали.

Для начала откроем упомянутый выше файл вашим любимым текстовым редактором:

sudo nano /etc/fstab

Там вы увидете нечто наподобие вот этого:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdc1 during installation
UUID=f2eb7a84-33ec-4333-9010-1576edc5445e /               ext4    errors=remount-ro 0       1
# /bgd1 was on /dev/sda1 during installation
UUID=76D340723F3748CA /bgd1           ntfs    defaults,umask=007,gid=46 0       0
# /bgd2 was on /dev/sdd1 during installation
UUID=7D8061F7419E76D3 /bgd2           ntfs    defaults,umask=007,gid=46 0       0
# swap was on /dev/sdc8 during installation
UUID=97d134c9-2c1d-4996-bd55-a99e4d630b3d none            swap    sw              0       0

Страшно, да? Не бойтесь, тут все просто. Все что идет после знака # является комментарием. А сами записи читаются по следующей формуле:

раздел_винчестера точка_монтирования файловая_система опции_монтирования два_вспомогательных_числа

Как известно, разделы винчестера в Linux именуются как sdaX (или sdbX, sdcX и т.д. если у вас несколько винчестеров). Нам надо определиться, какой раздел мы будем монтировать. Воспользуемся уже знакомой командой.

sudo fdisk -l

На моем компьютере имеется целая гирлянда жестких дисков, каждый из которых поделен на десятки разделов, поэтому полный вывод команды я приводить не буду, а покажу только самое основное, что должно попасть в фокус внимания:

Устр-во    Загрузочный     Start Конец Секторы   Size Id Тип
/dev/sdc1                   2048  292968447  292966400 139,7G 83 Linux
/dev/sdc2              390627326 1953523711 1562896386 745,3G  5 Расширенный
/dev/sdc5              390627328  449218559   58591232    28G 83 Linux
/dev/sdc6              488282112 1953523711 1465241600 698,7G 83 Linux
/dev/sdc7              484874240  486971391    2097152     1G  6 FAT16
/dev/sdc8              449220608  484872191   35651584    17G 82 Linux своп / Solaris

Моя файлопомойка хранится на самом большом из этих разделов. Имеется в виду не тот, что помечен как "Расширенный", потому что он содержит в себе все остальные логические, а тот, который "Linux". Как видно по данной таблице, это "sdc6".

Однако в fstab используется несколько другой механизм идентификации винчестеров, точнее, так называемый uuid.

Чтобы выяснить UUID нашего раздела, введем

ls -l /dev/disk/by-uuid

В моем случае вывод команды выглядит так:

итого 0
lrwxrwxrwx 1 root root 10 авг 23 13:05 06A64446A6443907 -> ../../sdb2
lrwxrwxrwx 1 root root 10 авг 23 13:05 14a416c9-0b66-41e1-903b-af863fd3dccd -> ../../sdc5
lrwxrwxrwx 1 root root 10 авг 23 13:05 2016-04-20-22-29-52-00 -> ../../sde1
lrwxrwxrwx 1 root root 10 авг 23 13:05 681281CA12819E26 -> ../../sdb1
lrwxrwxrwx 1 root root 10 авг 23 13:05 76D340723F3748CA -> ../../sda1
lrwxrwxrwx 1 root root 10 авг 23 13:05 7D8061F7419E76D3 -> ../../sdd1
lrwxrwxrwx 1 root root 10 авг 23 13:05 97d134c9-2c1d-4996-bd55-a99e4d630b3d -> ../../sdc8
lrwxrwxrwx 1 root root 10 авг 23 13:05 9E1B-22A9 -> ../../sdc7
lrwxrwxrwx 1 root root 10 авг 23 13:05 B1F5-0A13 -> ../../sde2
lrwxrwxrwx 1 root root 10 авг 23 13:05 b3360989-5632-4ad9-879f-875bfbd2b1a2 -> ../../sdc6
lrwxrwxrwx 1 root root 10 авг 23 13:05 f2eb7a84-33ec-4333-9010-1576edc5445e -> ../../sdc1

Посмотрим, который из них относится к "sdc6". Ага. Вот он: "b3360989-5632-4ad9-879f-875bfbd2b1a2". Подставляем его в нашу формулу:

UUID=b3360989-5632-4ad9-879f-875bfbd2b1a2 /home ext4 опции_монтирования два_вспомогательных_числа

Опции и вспомогательные числа - тема для отдельной статьи. На Википедии есть кое-что интересное по этому поводу. Но для нашей конкретной  папки "/home" необходимо сделать так:

UUID=b3360989-5632-4ad9-879f-875bfbd2b1a2 /home ext4 defaults,noatime 0 2

Теперь добавим всю эту фигню в "fstab".

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdc1 during installation
UUID=f2eb7a84-33ec-4333-9010-1576edc5445e /               ext4    errors=remount-ro 0       1
# /bgd1 was on /dev/sda1 during installation
UUID=76D340723F3748CA /bgd1           ntfs    defaults,umask=007,gid=46 0       0
# /bgd2 was on /dev/sdd1 during installation
UUID=7D8061F7419E76D3 /bgd2           ntfs    defaults,umask=007,gid=46 0       0
# swap was on /dev/sdc8 during installation
UUID=97d134c9-2c1d-4996-bd55-a99e4d630b3d none            swap    sw              0       0
UUID=b3360989-5632-4ad9-879f-875bfbd2b1a2 /home ext4 defaults,noatime 0 2

Наконец, сохраним изменения, закромем текстовый редактор... Помолимся, чтобы вся ОС не накрылась медным тазом, и ребутнемся.

sudo reboot

И... Ура. Все работает!

Добавлю, что всегда удобно иметь отдельный винчестер под домашнюю папку, ведь она легко монтируется к любому из установленных на компьютере Linux-ов, позволяя сохранять все привычные пользовательские настройки. Цвета терминала, например, и т. п. Единственный нюанс... Конечно, если ваш винчестер пуст, лучше бы его примонтировать  к /home еще во время установки - так вы избежите лишней головной боли... Но если там уже имеются пользовательские папки, сохранившиеся с прошлого раза, то все должно пройти гладко.