Монтирование дисков. Что такое UUID. Добавить диск в fstab.


Монтирование дисков, не указаных в fstab.

Что такое UUID и как с этим работать?

Ситуация следующая:
ubuntu, kubuntu, xubuntu да и другие системы тоже.
Есть диски уже прописанные в /etc/fstab с ними всё в порядке, они как надо монтируются (mount).
Но надо добавить диск или несколько дисков в fstab для автоматического монтирования.
Например, пару NTFS (виндовых) дисков.

Учитывая, что сейчас практически у всех SATA…
Если тупо ручками прописать в /etc/fstab что-нить типа такой строчки:
/dev/sda1 /mnt/win_sys ntfs auto,uid=0,gid=0,rw,users,quiet 0 0
То в один прекрасный момент можно обнаружить ошибку монтирования
Т.к. виндовый диск оказался уже не /dev/sda1, а /dev/sdb1…

И тогда становится интересно, что же такое UUID в соседней строчке fstab?
UUID=***-***-***-****901 / ext3 nouser,relatime,errors=remount-ro,atime,auto,rw,dev,exec,suid 0 1
И как наш /dev/sda1 преобразовать в этот UUID?

Оказывается всё очень просто!

Есть такая команда как vol_id
Подробности смотрим по vol_id —help или man vol_id.

Открываем терминал и пишем:
vol_id -u /dev/sda1
и он нам выдаёт этот самый пресловутый UUID для нашего диска.
Далее копируем этот UUID
И в /etc/fstab вместо /dev/sda1 пишем UUID=BC*******.

В итоге получается что-то типа такой строчки:
UUID=BC******** /mnt/win_sys ntfs auto,uid=0,gid=0,rw,users,quiet 0 0
Сохраняем наш новый fstab. Пре перезагрузке у нас автоматом монтируется наш диск.
Всё.


 

Update:

#======================================
#
# Edit by Ben-Ja http://www.net4me.net
#    On Thu 21 Oct 2010 01:24:55 PM MSD
#
#======================================

Замена устаревшего vol_id на blkid

В современных дистрибутивах всё чаще отказываются от vol_id в пользу blkid.
Это разные утилиты из различных пакетов.

# dpkg -S /sbin/blkid
e2fsprogs: /sbin/blkid
# dpkg -S /sbin/vol_id
udev: /sbin/vol_id

Давайте рассмотрим что такое blkid и как этим пользоваться.
Запускать и работать с blkid надо от рута.

# blkid
/dev/sda5: UUID="96441EA1441E83E1" LABEL="DOP" TYPE="ntfs"
/dev/sda1: UUID="BC60EB1A60EAD9E2" LABEL="SYS" TYPE="ntfs"
/dev/sda3: UUID="d9a6d112-ee7d-4f89-abb7-1189a6482901" TYPE="ext3"
/dev/sda4: UUID="51ce955a-1c69-42b1-931c-24aa1b0939ff" TYPE="ext2"
/dev/sdb1: UUID="421043D61043D019" LABEL="GAMES" TYPE="ntfs"
#
# blkid -s UUID
/dev/sda5: UUID="96441EA1441E83E1"
/dev/sda1: UUID="BC60EB1A60EAD9E2"
/dev/sda3: UUID="d9a6d112-ee7d-4f89-abb7-1189a6482901"
/dev/sda4: UUID="51ce955a-1c69-42b1-931c-24aa1b0939ff"
/dev/sdb1: UUID="421043D61043D019"
#
# blkid /dev/sda1
/dev/sda1: UUID="BC60EB1A60EAD9E2" LABEL="SYS" TYPE="ntfs"

Как видим, можно получить данные по всем хардам и файловым системам, а можно и по одиночке и в том формате, в котором нам удобно.
Далее полученную информацию об UUID используем в fstab так же, как и было описано в начале этой статьи.
Параметры:

# blkid -h
usage:  blkid [-c ] [-ghl] [-o format] [-s ] [-t ]
    [-v] [-w ] [dev ...]
        -c      cache file (default: /etc/blkid.tab, /dev/null = none)
        -h      print this usage message and exit
        -g      garbage collect the blkid cache
        -s      show specified tag(s) (default show all tags)
        -t      find device with a specific token (NAME=value pair)
        -l      lookup the the first device with arguments specified by -t
        -v      print version and exit
        -w      write cache to different file (/dev/null = no write)
        dev     specify device(s) to probe (default: all devices)

Еще раз повторюсь, что blkid надо запускать от рута или через sudo.
Повторяюсь потому, что при запуске от имени обычного пользователя, программа не будет «ругаться», а просто не будет выполнять каких-либо действий (вот такая недоработка в информативности).

Удачного использования! =)