Конфигурирование fstab

Для просмотра вновь созданных и пока не включенных в fstab ( скажем, hda6 или sdb7) разделов, или любых других доступных для монтирования разделов жесткого диска выполните как обычный пользователь в konsole:

 ls -l /dev/disk/by-uuid

Вывод команды будет похож на приведенный ниже (выделение толстым шрифтом исключительно для примера):

lrwxrwxrwx 1 root root 10 2007-05-27 23:42 348ea9e6-7879-4332-8d7a-915507574a80 -> ../../hda4
lrwxrwxrwx 1 root root 10 2007-05-27 23:42 610aaaeb-a65e-4269-9714-b26a1388a106 -> ../../hda2
lrwxrwxrwx 1 root root 10 2007-05-27 23:42 857c5e63-c9be-4080-b4c2-72d606435051 -> ../../hda5
lrwxrwxrwx 1 root root 10 2007-05-27 23:42 a83b8ede-a9df-4df6-bfc7-02b8b7a5f1f2 -> ../../hda1
lrwxrwxrwx 1 root root 10 2007-05-27 23:42 ad662d33-6934-459c-a128-bdf0393e0f44 -> ../../hda6

В этом примере строка, содержащая ad662d33-6934-459c-a128-bdf0393e0f44 отсутствует в fstab. Следующим шагом станет добавление соответствующей данному UUID строки в файл /etc/fstab. Для этого подойдет любой текстовый редактор (такой как kate или kwrite), запущенный от имени суперпользователя root:

# <device file system> <mount point>   <type>  <options>       <dump> <pass>
UUID=ad662d33-6934-459c-a128-bdf0393e0f44 /media/hda6 ext3	auto,users,exec	0 2

Еще один пример:

lrwxrwxrwx 1 root root 10 2007-05-28 13:18 30ebb8eb-8f22-460c-b8dd-59140274829d -> ../../sdb8
lrwxrwxrwx 1 root root 10 2007-05-28 13:18 387d6d4b-4508-4b8e-8ed2-76998f41dae4 -> ../../sdb1
rwxrwxrwx 1 root root 10 2007-05-28 13:18 7014f66f-6cdf-4fe1-83da-9cab7b6fab1a -> ../../sdb5
lrwxrwxrwx 1 root root 10 2007-05-28 13:18 8f042ead-259f-4df0-98ec-3343080396c5 -> ../../sdb6
lrwxrwxrwx 1 root root 10 2007-05-28 13:18 94B0AE63B0AE4B94 -> ../../sda2
lrwxrwxrwx 1 root root 10 2007-05-28 13:18 A61820AA18207B85 -> ../../sda1
lrwxrwxrwx 1 root root 10 2007-05-28 13:18 f28725d6-b7b5-4207-8476-36efe1a903ce -> ../../sdb9
lrwxrwxrwx 1 root root 10 2007-05-28 13:18 f855c263-2521-48d3-8ec9-d2d2b69b6635 -> ../../sda3
rwxrwxrwx 1 root root 10 2007-05-28 13:18 f9aa4027-ecdd-4a86-84e2-df2ef73fe14e -> ../../sdb7

Здесь отсутствующей в fstab записью является строка, содержащая f9aa4027-ecdd-4a86-84e2-df2ef73fe14e.Добавляем соответствующую запись в /etc/fstab:

# <device file system> <mount point>   <type>  <options>       <dump> <pass>
UUID=f9aa4027-ecdd-4a86-84e2-df2ef73fe14e /media/sdb7 ext3	auto,users,exec	0 2
замечание: Точки монтирования (в fstab) должны быть существуюшие папки, sidux создает эти папки в течение установки под /media, и назвываются sda1, sda2 ... disk0, disk1.
Точки монтирования для разделения, созданных после установки должны быть созданы и добавлены вручно в fstab.

Обзор: UUID, метка раздела и fstab

Длинные имена (persistent naming) в обозначении блочных устройств стали возможным с появлением udev и предоставляют несколько преимуществ по сравнению с наименованиями на базе Bus. В дальнейшем подразумевая этот способ обозначения мы будем использовать термин "длинное наименование".

Развитие Linux дистрибутивов и udev сделало более надежным опознавание аппаратных средств, но одновременно с этим поставило необходимость решения ряда новых вопросов:

1) Порядок подключения при наличии более чем одного контроллера SATA/SCSI или простых контроллеров IDE становится случайным. Как следствие имена одного и того же устройств вида hdx/hdy или sdx/sdy случайно чередуются полсле каждой загрузки.Использование "длинных наименований" позволяет больше не беспокоиться обэтом.

2) С внедрением  новой библиотеки libata и поддержкой PATA все блочные устройства, до сих пор именовавшиеся как hdx, в будущем будут называться sdX. Использование "длинных наименований" и в этом случае избавляет пользователя от беспокойства.

3)Ныне широко распростанено одновременное использование контроллеров SATA-и IDE типа. Благодаря использованию libata в этом случае все жесткие диски, независимо от типа контроллера, получают имена вида sdX .

По вышеназванным причинам по умолчанию sidux использует UUID в/etc/fstab.

Существуют и другие причины. Но перечисленные - наиболее критичны как в настоящий моммент , так и на ближайшее будущее. Поэтому sidux рекомендует использование схемы наименования блочных устройств с длинными именами.

4 схемы для "длинных наименований":

1. Посредством UUID

UUID (сокращение от "Universally Unique Identifier") является механизмом присвоения уникальных обозначений различным устройствам. Уникальность каждого конкретного обозначения обусловлена крайне низкой вероятностью коллизий(совпадения имен).
Все файловые системы Linux включая swap, поддерживают UUID. Хотя FAT-и файловая система NTFS не поддерживают UUID, для них также возможно создание уникального обозначения в стиле "uuid":

$ /bin/ls -lF /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Oct 16 10:27 2d781b26-0285-421a-b9d0-d4a0d3b55680 -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 16 10:27 31f8eb0d-612b-4805-835e-0e6d8b8c5591 -> ../../sda7
lrwxrwxrwx 1 root root 10 Oct 16 10:27 3FC2-3DDB -> ../../sda6
lrwxrwxrwx 1 root root 10 Oct 16 10:27 5090093f-e023-4a93-b2b6-8a9568dd23dc -> ../../sda2
lrwxrwxrwx 1 root root 10 Oct 16 10:27 912c7844-5430-4eea-b55c-e23f8959a8ee -> ../../sda5
lrwxrwxrwx 1 root root 10 Oct 16 10:27 B0DC1977DC193954 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Oct 16 10:27 bae98338-ec29-4beb-aacf-107e44599b2e -> ../../sdb2

В приведенном примере можно видеть uuid обозначения FAT-и NTFS разделов, хотя и более короткие. Преимущество метода UUID - незначительная вероятность совпадения наименований по сравнению с использованием метки. Недостаток очевиден: наименования UUID сложнее запоминать.

2. Посредством МЕТКИ (LABEL)

Практически каждый тип файловой системы может иметь метку. Разделы с меткой находят в каталоге /dev/disk/by-label:

$ ls -lF /dev/disk/by-label
total 0
lrwxrwxrwx 1 root root 10 Oct 16 10:27 data -> ../../sdb2
lrwxrwxrwx 1 root root 10 Oct 16 10:27 data2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Oct 16 10:27 fat -> ../../sda6
lrwxrwxrwx 1 root root 10 Oct 16 10:27 home -> ../../sda7
lrwxrwxrwx 1 root root 10 Oct 16 10:27 root -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 16 10:27 swap -> ../../sda5
lrwxrwxrwx 1 root root 10 Oct 16 10:27 windows -> ../../sdb1

Обозначение метки может изменяться следующими командами:

* swap: производство нового swapspace: mkswap -L <label> /dev/XXX
* ext2/ext3: e2label /dev/XXX <label>
* reiserfs: reiserfstune -l <label> /dev/XXX
* jfs: jfs_tune -L <label> /dev/XXX
* xfs: xfs_admin -L <label> /dev/XXX
* fat/vfat: хотя изменение метки FAT раздела под  Linux невозможно, но создание метки допустимо при создании файловой системы: mkdosfs -n <label> <дальнейшие опции>. 
Изменение метки FAT разделов может быть проведено в Windows.
* ntfs: ntfslabel /dev/XXX <label> изменение метки в Windows. 

ВНИМАНИЕ: Чтобы при подключении функционировать, метки должны иметь уникальное обозначение. Это относится и к внешним устройствам (жесткие диски, Sticks, и т.д.), которые включаются через USB или FIrewire. Синтаксис LABEL =/UUID = для разделов UN*X предпочтительнее, чем /dev/disk/by-*/.

3. Посредством ID

Метод by-id создает единственное обозначение на основе серийного номера аппаратных средств.

4. Посредством Path

by-path создает единственное обозначение на основе самого короткого физического пути (по sysfs).

Оба вышеупомянутых метода содержат строки символов, которые снимают показания, к какой подсистеме они принадлежат, и таким образом не подходят, для решения выше упомянутых проблем и здесь в дальнейшем не обсуждаются.

Использование длинных наименований

Здесь пример включения длинных наименований в fstab.

В fstab

Включение в/etc/fstab достаточно просто. Имя устройства в первом столбце заменяется на длительный наименование. В нашем примере /dev/sda7 заменяется одним из двух вариантов:

/dev/disk/by-label/home или
/dev/disk/by-uuid/31f8eb0d-612b-4805-835e-0e6d8b8c5591 

Тоже самое повторяется для всех разделов в fstab

Вместо использования непосредственно длинного имени, для обозначения подключаемого накопителя, можно использовать его UUID или метку: LABEL=<label> или UUID=<uuid>. Например:

LABEL=Boot

или

UUID=3e6be9de-8139-11d1-9106-a43f08d823a6

Использование длинных имен в менеджере загрузки

Чтобы использовать длинные наименования в диспетчере начальной загрузки необходимы следующие шаги:
1) Использование mkinitcpio initramfs image
2) Udev активирован в: /etc/mkinitcpio.conf
3) при создании initramfs image необходимо использовать klibc-udev версии 101-3 или выше (persistent naming является в предыдущих версиях не дееспособным). Если klibc-udev обновлен на новую версию и желательно использование длинных наименований, то генерация initramfs-image осуществляется до перезагрузки.

В вышеупомянутом примере /dev/sda1 является root разделом. Замена строка ядра в файле /boot/grub/menu.lst выглядит (в зависимости от выбора схем наименования)следующим образом:

:

kernel /boot/vmlinuz26 root=/dev/hda1 vga=0x318 ro

модифицирована в

kernel /boot/vmlinuz26 root=/dev/disk/by-label/root vga=0x318 ro

или

kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/2d781b26-0285-421a-b9d0-d4a0d3b55680 vga=0x318 ro

Альтернативный метод такой: присвоить метку файловой системе. Если, например, файловая система /dev/hda1 имеет метку (Label) "root", то строка ядра в /boot/grub/menu.lst выглядела бы следующим образом:

 kernel /boot/vmlinuz26 root=LABEL=root vga=0x318 ro

Источники: wiki.archlinux.org ссылаясь на marc.theaimsgroup.com. Содержание wiki.archlinux.org является засвидетельствованным как под GNU Free Documentation License 1.2. Редактировано и соответственно переведено для sidux руководствa.

Больше о метках: lissot.net

Content last revised UTC 30/12/2007 1300hrs