Fstab

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел руководства

Содержание

[править] Введение

/etc/fstab Конфигурационный файл с указанием партиции и ее точки монтирования в структуре файловой системы.

Классическая схема конфигурации на основе шины описана в статье О монтировании файловых систем

[править] Уникальные идентификаторы

Уникальная идентификация партиции и точное указание точки монтирования стало возможным при наличии udev и имеет некоторое превосходство над обозначением по положению на шине ide/scsi.

Развитие Linux и udev увеличивает надежность опознания различных устройств, но в тоже время появляются новые проблемы.

  1. Если у вас больше одного sata/scsi или ide контроллера, то их обозначение при загрузке будет случайным. В результате после перезагрузки диск sdX может выглядеть как sdY или для ide дисков - hdX и hdY. Уникальная идентификация позволяет забыть о подобных мелочах.
  2. Введение новой libata pata поддержки, все ваши ide hdX диски будут видны как sdX устройства. Уникальная идентификация дисков и партиций позволит вам безболезненный переход.
  3. В компьютерах с наличием sata и ide контроллеров переход от hdX к sdX может внести путаницу, которую можно избежать при использовании идентификаторов.

[править] Четыре схемы уникальной идентификации

[править] Идентификация по UUID

UUID это сокращение от слов Universally Unique IDentifier и описывает механизм выдачи каждой файловой системе уникального идентификатора. Все файловые системы в линуксе, включая swap, поддерживают UUID. FAT и NTFS не поддерживают UUID изначально, и тем не менее в линуксе им так же назначается UUID.

Code: ls -al /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 2f6e40d0-83b5-42dc-a102-b95bc32073dc -> ../../sda1
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 84e7c2c9-f26e-4e3f-98b8-93eec152cd5a -> ../../hdc5
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 867a5afb-f266-4a85-900f-efcc86004370 -> ../../sda3
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 9542be4e-fe40-4ca9-9522-f5222d32ac84 -> ../../sdb1
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 b15f438d-b4b7-4536-a8cc-46128f440c7c -> ../../hdc6
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 AF92-3DDB -> ../../sdd1
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 B0JC190ODC193954 -> ../../sdd6

Как вы видите, FAT и NTFS разделы имеют укороченный идентификатор.

Для определения UUID так же можно воспользоватся командой

Code: tune2fs -l /dev/sda1 | grep UUID

Filesystem UUID: 2f6e40d0-83b5-42dc-a102-b95bc32073dc

  • Преимущества использования UUID: уникальность каждого раздела по идентификатору позволяет избежать ошибок при монтировании.
  • Недостаток использования UUID: трудно запомнить ;)

[править] Идентификация по LABEL

Практически любой файловой системе или партиции можно присвоить LABEL (метку)

Code: ls -l /dev/disk/by-label/
total 0
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 250gig -> ../../sdb1
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 b00t -> ../../sda1
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 level0 -> ../../sda3
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 p2p -> ../../hdc6
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 swap -> ../../hdc5
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 fat -> ../../sdd1
lrwxrwxrwx 1 root root 10 2007-04-24 18:01 ntfs -> ../../sdd6

Посмотреть названия так же можно командой cfdisk /dev/sda

Для изменения label для каждой файловой системы выполните подходящие команды:

  • swap: Создание новой swap партиции:
    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: Изменить метку диска в Windows, или при создании раздела в линуксе
    mkdosfs -n <label> <other options>.
  • ntfs: Изменить метку диска в Windows или
    ntfslabel /dev/XXX <label>


Предупреждение: Будте внимательны при обозначении партиций. LABEL должен быть уникальным для каждого диска.

[править] Идентификация по id

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

[править] Идентификация по path

Создание имени по кратчайшему пути (path) в соответствии с sysfs и содежит информацию о шине на которой расположен жесткий диск. Что не подходит для наших целей и решения вышеобозначенных проблем. Более подробно в статье О монтировании файловых систем

[править] Использование уникальных идентификаторов

Я надеюсь вы уже определились какой метод вам понравился. Использование данных методов достаточно просто.

[править] fstab

В /etc/fstab замените обозначение диска в первой колонке на ваш идентификатор к примеру, я закомментировал обозначение дисков по id знаком # и записал обозначение двух партиций по разным идентификационным схемам.

Файл: /etc/fstab
#/dev/sda1              /boot           ext2            noauto,noatime          1 2
LABEL=b00t            /boot           ext2            noauto,noatime          1 2
#/dev/hdc5                                                                            none            swap            sw                      0 0
UUID=84e7c2c9-f26e-4e3f-98b8-93eec152cd5a       none            swap            sw                      0 0

Так же можно заменить /dev/sda1 на

/dev/disk/by-label/b00t или
/dev/disk/by-uuid/2f6e40d0-83b5-42dc-a102-b95bc32073dc

[править] grub

Предупреждение: Данное описание -- для Arch Linux. В Gentoo надо использовать genkernel и работает только указание корня через LABEL= и UUID= (на данный момент)
.

Для использования уникальных идентификаторов при загрузке необходимо:

  1. Использовать mkinitcpio initramfs образ
  2. Разрешить использование udev в /etc/mkinitcpio.conf
  3. Пересоздать initramfs образ до перезагрузки компьютера.
Примечание: В версиях klibc-udev до 101-3 уникальное обозначение устройств не работает

В приведенном выше примере партиция /dev/sda3 LABEL=level0 является root партицией и в файле /boot/grub/menu.lst запись

Code: /boot/grub/menu.lst
kernel /boot/vmlinuz26 root=/dev/sda3 vga=0x318 ro

надо поменять на

Code: /boot/grub/menu.lst
kernel /boot/vmlinuz root=/dev/disk/by-label/level0 vga=0x318 ro

или

Code: /boot/grub/menu.lst
kernel /boot/vmlinuz root=LABEL=level0 vga=0x318 ro

[править] Дополнительно почитать

Перевод выполнен по статье Persistent block device naming и оригинал в рассылке


Посоветовать или спросить,
пожаловаться или поблагодарить
можно на странице обсуждений.
Обсуди эту статью на форуме Gentoo.ru

Источник — «http://ru.gentoo-wiki.com/Fstab»
Личные инструменты