Debian 6.0 «Squeeze»: быстрый взгляд


Сайт создан в системе uCoz
Вернуться к Оглавлению

 

Автор: Andrey Rjavskov(Rzhavskov) as rjaan <rjaan@yandex.ru>


Вместо предисловия

Буквально ещё не давно мы ожидали, когда произойдет наконец-то стабилизация Debian 6.0 "Squeeze". И вот она произошла. Много интересных изменений Вы встретите, когда установите дистрибутив с CD/DVD-дисков, netinst или обновитесь до замороженной тестовой версии 6.0 с стабильной(пока ещё) 5.0 известной как "Lenny". В общем близок тот час, когда дистрибутив Debian «Lenny» станет OLD и уйдет в историю вслед за "Etch".

Претендующая на стабильную ветку версия 6.0 дистрибутива Debian порадовала автора несколькими нововведениями по-сравнению с "Lenny". Хотя, постепенно выработалось понимание, что многие из них оформятся только в следующих циклах разработки дистрибутива. А некоторые уже получили свою окончательную форму.

Многие может быть будут разочарованы и подвергнут автора этой статьи критики за недостаточный и полный обзор дистрибутива Debian 6.0 "Squeeze", но как видится автору они могут сделать "fork" этой статьи и дополнить её своими интересными фактами, которые им удалось найти в выходящем в стабилизируемом дистрибутиве. К тому же многие вещи не так координально поменялись, за исключением пользовательского интерфейса.

Что нового?

1) Debian-Installer

Как писал в свое время у себя в дневнике Debian-installer, вышел без графической оболочки. По-крайне мере у меня, по умолчанию, он был загружен в текстовом режиме, в котором для форм и элементов управлений диалогов используется библиотека ncurses или её аналоги.

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

Все остальное практически без изменений, если не считать дополнительных диалогов, которые были внесены в разметку дисков, что на мой взгляд усложнило процесс разметки дисков.

2) Grub2

После того, как вы установите систему и попытаетесь загрузится, вы убедитесь, что загрузчик Grub очень изменился как внутренне, так и внешне. Особенно, в отношении конфигурации, вот давайте на этом остановимся.

Во второй версии Grub изменилась в корне настройка загружаемых операционных систем. Теперь вместо привычного файла /boot/grub/menu.lst, используется файл /boot/grub/grub.cfg, а первый безвозвратно потерян для сообщества.

Как только его открываем в редакторе, первое, что попадается в нем на глаза, так это обилие использование команды insmod. Сразу же возникнет вопрос зачем она нужна, чтобы понять окунемся в прошлое, а именно во времена Grub1.

Раньше выполнение boot-загрузки Grub происходила в два этапа + плюс подготовительный. На первом этапе выполнялся stage1, который находился в MBR диска. Затем, он грузил stage1.5, который содержал необходимые драйверы для работы с блочными устройствами /dev/sda и /dev/hba, файловые системы, выполнял файл конфигурации /boot/grub/menu.lst и отображал меню. Этот этап и был подготовительным, потому что Grub подготавливал почву для загрузки прописанных в нем операционных системы, а так как этот boot-загрузчик является двухранговым, то и было дано ему название stage1.5, т.е. не туда и не сюда. Соответственно, stage1.5 загружал stage2, который загружал и распаковывал затем ядро linux или обращался к партиции с ОС MS-Windows.

Сегодня решили отказаться от этой схемы упростив её за счет использования подгружаемых отдельно grub-модулей, а не образа stage1.5, что по мнению разработчиков должно не только сократить время boot-загрузки, но сделать её более гибкой. В принципе, что мы наблюдаем сейчас в Grub2.

Теперь касательно других изменений, которые произошли в дистрибутиве Debian при переходе от первой версии Grub к второй. Итак, кроме ушедшего в небытие /boot/grub/menu.lst произошли следующие изменения:

  • Файлом главного меню является /boot/grub/grub.cfg, который разработчики проекта Debian рекомендуют изменять только через UPDATE-GRUB(8). Этот скрипт выполняет grub-mkconfig -o /boot/grub/grub.cfg для того, чтобы сгенерировать файл конфигурации /boot/grub/grub.cfg. Так же это можно сделать через upgrade-from-grub-legacy, если ничего не было автоматически определено.

  • Список доступных образов ядра Linux автоматически генерируется через просмотр директории /boot, при выполнении скрипта update-grub.
  • В директории /etc/defaults/ имеется файл /etc/defaults/grub в котором определены переменные для передачи аргументов update-grub, поэтому не рекомендую Вам их пока изменять во избежании неприятностей и до тех пор пока не будет понимания, что к чему и почему.
  • В /boot/grub/grub.cfg, изменен порядок следования партийций с нуля к единицы для первого устройства.
  • Сделан автоматизированный поиск других операционных систем, наподобие MS-Windows, когда всякий раз будет выполнен update-grub.
  • Сделанные изменения конфигурационных файлов не вступят в силу до тех пор пока не будет выполнена команда update-grub.
Как видим разработчики проекта Debian и проекта Grub избавили нас от редактирования конфигурационного файла c помощью утилиты upgrade-from-grub-legacy или скрипта update-grub.

В этом обзоре дано краткое представление что такое Grub2 и как с ним работать. Для тех кто хочет узнать о Grub2 более подробно, рекомендую обратится к соответствующим ссылкам в библиографии.

3)UUID идентификация

В Debian GNU/Linux 6.0 при монтировании разделов жестких дисков, FLASH-накопителей и других хранилищ с данными теперь применяется Universally Unique Identifier(UUID), универсальный уникальный идентификатор.

Coгласно RFC-4122 длина UUID равна 128 бит, что гарантирует уникальность во времени и пространстве. Таким образом, он может быть использован в различных целях от маркировки объектов с коротким временем жизни, таких как съемные накопители данных с интерфейсом USB, до надежной идентификации объектов в сети, таких как узлы глобальной вычислительной сети Интернет, что может в перспективе потеснить традиционную адресацию Вычислительных сетей IPv4 и IPv6. Сегодня же, пока UUID используется Open Software Foundation(OSF), фондом Свободного программного обеспечения, как часть Distributed Computing Environment (DCE), Окружения распределенных вычислений.

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

В Debian GNU/Linux 5.0 "Lenny" в качестве инструмента чтения меток и UUID разделов накопителей данных использовался vol_id, входящего в состав пакета udev. В Debian GNU/Linux 6.0 "Squeeze" ушедшего в небытие vol_id используется blkid.

Программа blkid является интерфейсом командной строки библиотеки libblkid(3). Эта библиотека позволяет читать содержимое файлов из /dev, а именно содержание метаданных из областей LABEL или UUID. В основном это тип используемой файловой системы используемым блочным устройством и его UUID.

Если вызывать blkid без передачи каких-либо опций, информация о накопителях данных будет прочитана из файла-кэша /etc/blkid.tab, что может быть не совсем верно, потому что он может содержать неверную информацию, такую как об удаленных из системы USB Flash дисков. Поэтому при определении реально содержащихся накопителей нужно выполнить blkid:

# blkid -c /dev/null

В результате получи некоторый дамп.

/dev/sda1: UUID="d47f1ac0-3df7-4587-8e44-27988bd0b5c2" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda2: UUID="691bd423-89e4-4527-93cc-17e8a12894f4" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda3: UUID="107d8a7d-8142-4a73-9724-299b1f0db2b8" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb1: UUID="b16fb9e4-a618-47a0-qe30-d3204b76d8d5" TYPE="ext3"

Он состоит из пар ИМЕНИ=ЗНАЧЕНИЯ, определенных, в данном случае, для блочных устройств /dev/sda и /dev/sdb. Ну, если с UUID всем нам понятно, то для разделов /dev/sda1, /dev/sda2 и /dev/sda3 мы наблюдаем первичный тип(TYPE) и вторичный тип(SEC_TYPE) файловой системы. Таким образом, присутствие вторичного типа говорит нам, что данный раздел может быть не только смонтирован как файловая система ext3, но так же как и Ext2, но только без возможности внесения каких-либо изменений в ней, т.е модификации, операций чтения, удаления и создания файлов и директорий.

Как мы можем использовать UUID в файле /etc/fstab? Для корня файловой системы "/" обычно применяют следующую запись в файле /etc/fstab

UUID={ВАШ-UID} {/точка/монтирования} {тип-файловой-системы} defaults,errors=remount-ro 0 1

Для других точек монтирования

UUID={ВАШ-UID} {/точка/монтирования} {тип-файловой-системы} defaults 0 2

У Вас должно получится, что наподобие этого

# / was on /dev/sdb1 during installation
UUID=b16fb9e4-a618-47a0-qe30-d3204b76d8d5 / ext3 errors=remount-ro 0 1
# /media/my_archive was on /dev/sda3 during installation
UUID=107d8a7d-8142-4a73-9724-299b1f0db2b8 /media/my_archive ext3 defaults,ro 0 2

Так же рекомендую снабжать ваши записи о точках монтирования вместе с UUID комментариями следующего содержания:

# </точка/монтирования> was on </dev/блочный/файл> during installation

Данная информация о том какие точки монтирования с каким UUID соответствуют тому или иному блочному устройству может понадобится при использовании в режиме "Single user" дисковых утилит df(1), fdisk(8) и fsck(8) ,которые пока увы работают с /файлами/блочных/устройств.

4) Художественная тема Space Fun

Художественное наследие Debian пополнилось темой, которая будет нас сопровождать на протяжении существования Debian 6.0 Squeeze. Со старта ISOLINUX, который поможет нам запустить Debian-Installer(d-i). Затем, в самом d-i, а так же на этапе подготовки к загрузки операционной системы в Grub1/Grub2 нас будут сопровождать фоновые изображения, объединяемые одной художественной темой Space Fun, которой нас с вами порадовал Debian ArtWork.

Первые шаги к использованию объединенной художественной темы начались ещё в Debian 5.0 Lenny, когда мы с вами получили тему рабочего стола пользователя по-умолчанию.

А сегодня в выходящем релизе Debian 6.0 Squeeze от ISOLINUX вплоть до старта рабочего стола и работы с ним нас будет сопровождать тема Space Fun.

ISOLINUX
Загрузить изображение
 
GRUB
Загрузить изображение
 
GRUB2
Download Image
 
Старт системы и выход из сна
Go
 
Ошибка
Error
 
Останов системы и вход в состояние сна
Back

5) Использование файловых систем devpts и tmpfs

Эти две файловые системы используются для оптимизации работы системы за счет повышения быстродействия, т.к. нет какого-либо обращения к жесткому магнитному диску или наихудший вариант Flash-диску будь это USB или более шустрый интерфейс CF, т.е IDE.

Файловая система devpts используется для обеспечения интерфейса для устройств псвдотерминала (pty), который обычно монтируется в точке монтирования /dev/pts. Файловая система tmpfs используется для создания директорией /lib/init/rw, которая задействуется Init-скриптами до того момента пока корневая система ещё находится в режиме "только чтение". Эта же файловая система задействуется для создания точек монтирования /dev и /dev/shm.

Ещё один сюрприз нас ждет в Debian Squeeze, /dev/MAKEDEV скрипт является символической ссылкой на /bin/true, возвращающий всегда признак успешного завершения. По сути дело, произошел отказ от него в пользу UDEV, которая запускается на начальном этапе с помощью скрипта udev и создает структуру специальных файлов устройств и директорий в /dev.

Ранее точки монтирования /lib/init/rw,/dev и /dev/pts и /dev/shm можно было увидеть в /etc/fstab, но в Debian Squeeze они создаются и монтируются в Init-скриптах mountkernfs.sh, udev, mountdevsubfs.sh, при инициализации на 4-м этапе загруки "Нормальной Debian-системы". Это происходит во время запуска init-скриптов из директории /etc/rcS.d, которая по-сути своей подготавливает почву для инициализации системы по уровню выполнения(runlevels). Он указывается в /etc/inittab или в параметре ядра отдельным номером по уровню выполнения без каких-либо опций. Данные о точках монтирования в Init-скрипте mountdevsubfs.sh,udev и mountdevsubfs.sh прописаны жестко. Поэтому по аналогии с этими Init-скриптами лучше написать свой собственный Init-скрипт для уровня выполнения системы S, как это предлагается сделать в статье Как использовать файловые системы tmpfs и devpts в Debian Squeeze. Из неё же можно получить более подробную информацию по использованию файловых систем devpts и tmpfs.

Библиография

  1. Ubuntu GRUB2 Tutorial
  2. GRUB 2 bootloader - Full tutorial
  3. RFC-4122. A Universally Unique IDentifier (UUID) URN Namespace
  4. How To Use UUID To Mount Partitions / Volumes Under Ubuntu Linux
  5. What is meant by "sec_type=ext2"
  6. blkid(8) - Linux man page
  7. Debian ArtWork: Тема Space Fun
  8. Как использовать файловые системы tmpfs и devpts в Debian Squeeze

 

Вернуться к Оглавлению


Copyright © 2010 rjaan as Andrey Rjavskov(Rzhavskov) <rjaan@yandex.ru> <arjavskov@gmail.com>



Сайт создан в системе uCoz