den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
После принятия udev, глобального уникального идентификатор устройств (UUID), и появления последнних версий linux-wlan-ng ядра, для наименования всех блочных устройств решено использовать схему состоящую из трехбуквенного идентификатора и номера, в видеsda для дисковых устройств иsdaX для разделов диска.
Независимо от типа используемых дисков: PATA (IDE), SATA (Serial ATA) или SCSI, единственный способ дифференцировать один диск от другого в вашей машине, это третья буква в названии устройства /dev/sda1, /dev/sdb1, /dev/sdc1, /dev/sdd1:, etc.
Вы видите устройства, перечисленные таким образом, во всплывающих окнах, проводя курсор мыши над значками на рабочем столе в sidux live-cd или sidux установке на жесткий диск.
Настоятельно рекомендуем построить себе таблицу, либо вручную, либо с помощью компьютерного инструментария, в которой Вы будете фиксировать данные о всех блочных устройствах в вашем компьютере. Это, безусловно, скучно, но данная операция может сэкономить много времени и избавить от многих проблем в будущем.
Файл /etc/fstab сохраняет информацию о /dev/ sdaX устройствах в квадратных скобках в комментарии выше строки соответствующей каждому из устройств . Например (жирный шрифт использован для выделения в самом примереконкретном примере).
Код: |
# added by sidux [/dev/sdd1, no label]
UUID=2ae950df-7d72-4d9b-a71a-bad1eb2d4f6a / ext3 defaults,errors=remount-ro,noatime 0 1 |
Для разделов диска
Как видно из примеров выше, для обозначения разделов диска к обозначению самого диска /dev/disk добавляется номер.
Существуют следующие типы разделов: первичные, расширенные и логические, где логически содержатся в расширенной. Есть максимум 4 первичных или 3 первичных и 1 расширенный.There are maximum 4 primary or 3 primary and 1 extended. Расширенный может содержать до 11 логических разделов.
Первичный или расширенный иметь имя от sda1 до sda4. Логические разделы всегда являются частью расширенного. Вы можете определить (с libata) максимум 11 таких разделов и их наименование начинается с 5 (например sda5), а заканчивается 15 (sda15)
Конфигурирование 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. |
|