Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Знакомство с Linux. Часть 15
Раздел: Статьи
Рубрика: ОПЕРАЦИОННЫЕ СИСТЕМЫ
Имя документа: Знакомство с Linux. Часть 15
Адрес страницы: http://www.fcenter.ru/articles.shtml?os/7111

Автор: братец кролик
19.07.2003 14:55:00
В середине семидесятых в США была очень популярна такая отрасль психологической науки, как экспериментальная психология. Среди её постулатов выделялся особенно один: мы такие, какими себя представляем. Имеется в виду, что объективные внешние факторы имеют, конечно, большое значение, но если по-настоящему поставить себе цель и полностью вложиться в её достижение, обязательно к ней придёшь.

Мой цикл статей - замечательное подтверждение этой теории, как я начал понимать в последнее время. Ведь я описываю в нём повседневную работу с рядовой домашней Linux-системой - и в то же время, стараюсь сделать свои рассказы наиболее общими, то есть полезными для людей в самых разных ситуациях. Так вот, с любопытными, достойными описания ситуациями я теперь сталкиваюсь гораздо чаще, чем, скажем, с полгода назад. А может, раньше я просто не обращал на важные мелочи достаточно внимания?

Вот живой пример: после того, как в прошлой статье цикла я рассказал о подготовке системы к переустановке "вчистую", совершенно логичным шагом было эту переустановку произвести. Что я и сделал. Однако по пути столкнулся с несколькими любопытными деталями, к описанию которых незамедлительно и приступлю. Надеюсь - с пользой для аудитории.

Итак, подготовка была завершена. А именно: все достойные сохранения данные упакованы в архивы *.tar.bz2 и перенесены на внешние носители (CD-R, CD-RW) либо на соседние файловые системы (vfat, к примеру), которые при переустановке не предполагается форматировать. Кстати, небольшое замечание: если вы собираетесь сложить в единый архив всё содержимое домашней директории, подойдите к вопросу творчески. Есть данные, которые сжимать не имеет ни малейшего смысла - картинки в формате JPEG, MP3- и OGG-музыка, уже когда-то созданные архивы и т.п. Такие данные лучше собирать в несжатые .tar-архивы (с опциями, позволяющими сберечь права владения и обращения с файлами, разумеется). Заодно экономится время, которое не будет израсходовано на бесплодные попытки утрамбовать их ещё на пару процентов.

Ну что же, архивы размещены в безопасности, установочный диск дистрибутива помещён в привод... Перезагружаемся (командой reboot из root'овской консоли, к примеру) и встречаем знакомое уже текстовое приглашение к началу инсталляции. Нажимаем на Enter, пропускаем тест носителей командой Skip - ведь мы их уже тестировали, когда занимались апгрейдом... Общесистемную раскладку клавиатуры снова выбираем Russian (Microsoft) - для тех, кто привык, что точка возникает на экране при нажатии расположенной у правого Shift'а клавиши, а не по Shift+7.


На следующем экране программы инсталляции указываем - "Выполнить новую установку Red Hat Linux". Затем - "Выборочная установка" и "Ручное разбиение программой Disk Druid". Открывающийся перед нами следующим экран выглядит знакомым по самым первым нашим занятиям, - примерно так же он смотрелся при установке RHL 7.3. Вполне возможно, что вам переразбиение диска выполнять не придётся. А вот я свой подход к распределению пространства на нём пересмотрю. Поэтому сперва удалю имеющиеся разделы ext3 - выделяя их мышкой в списке и щёлкая по кнопке "Удалить". Получу в итоге массу свободного места.


Прежде всего, необходимо отвести пространство под swap-файл. Согласно стандартным рекомендациям, оно должно вдвое превышать наличный объём оперативной памяти. Затем - раздел /boot, где будут храниться скомпилированные образы ядра системы. Его я создал равным 128 Мбайт, чтобы иметь возможность хранить там несколько образов, не беспокоясь о том, поместится ли туда очередной или нет. Нужда в обновлении ядра возникает по мере выхода заплаток функциональности и безопасности, либо при оснащении системы дополнительными способностями. Ну, например: если винчестер съёмный и путешествует между двумя различными по конфигурации компьютерами, вполне можно создать по собственному образу ядра для каждого из них, а при старте - выбирать нужный. Или, скажем, если вы загорелись желанием создать домашний кластер из нескольких старых ПК, но не собираетесь держать ферму работающей всё время, достаточно хранить на винчестере скомпилированное с патчем MOSIX ядро и пускать его в дело по мере надобности.

Есть пара служебных разделов, которые я также предпочитаю отграничивать от прочего пространства винчестера: это /tmp, хранящий всевозможные временные файлы, и /var, где содержится много статистической и контрольной информации (лог-файлы), а также почтовые спулы. На эти разделы я щедрой рукой отвожу по гигабайту (общий объём места, которое в итоге займёт Linux на моём HDD, - 20 Гбайт). Помня о том, что полная инсталляция всех входящих в три дистрибутивных CD пакетов занимает почти 5 Гбайт, и рассчитывая на установку дополнительных пакетов помимо того, я отвожу 8 Гбайт под раздел /usr - именно там будут храниться программы, как исполняемые файлы, так и исходные тексты. Раздел /, так называемый корневой, - это базовый раздел системы, где содержится домашний каталог суперпользователя и системно-служебные директории вроде /dev и /bin. Пусть тоже расположится на гигабайте дискового пространства. И наконец, /home займёт всё остальное. Примерно 5 Гбайт. На первое время - хватит.

При указании параметров каждого раздела не забывайте разрешать их форматирование, а также поиск сбойных блоков. Это поможет получить представление о том, насколько ваш винчестер ещё в состоянии выполнять свои функции. Мне, кстати, помогло: после того, как я закончил указывать параметры установки и нажал на кнопочку "Начать", система приступила к проверке и форматированию разделов - и вот тут-то я получил сообщение о наличии сбойных блоков на устройстве /dev/hde9, том самом, что я отвёл под /tmp. Это всё-таки случилось.

Да, под Linux существует утилита, позволяющая локализовать сбойные блоки, и я её в своё время применю. Но в принципе, "осыпание" винчестера - процесс необратимый и прогрессирующий. Раз уж сбойные блоки появились, меньше их не станет. А стало быть, надо больше внимания уделять резервному копированию, пока HDD не заменён. Поговорим о нём подробней чуть позже, а пока просто отменим проверку поверхности для раздела /tmp - оставив форматирование, конечно. И порадуемся, что сбой обнаружился на /tmp, а не на /home или /usr, скажем. Дальше всё пойдёт гладко.


После установки всех пакетов система предложит наладить драйвер видеоадаптера. Мне вместо GeForce 4 MX Generic был сперва предложен драйвер GeForce 4 Generic, который я мужественно отверг в пользу более подходящего. И пока не стал устанавливать тот, что скачал с сайта NVIDIA, - решил проверить, как ведёт себя стандартный.


Первый старт системы после перезагрузки встретил появлением на экране оболочки firstboot: система настаивала на том, чтобы я завёл ещё одного (помимо root'а) пользователя, настроил звук и некоторые дополнительные параметры, не слишком существенные, чтобы включать их в исходную инсталляцию. Между прочим, выбор русского языка в качестве основного привёл к тому, что клавиатура после старта стала работать в кириллическом режиме - переключение в латинский и обратно осуществляется по умолчанию одновременным нажатием двух клавиш Shift. Позже мы научимся модифицировать такое поведение.

А пока - самое интересное. Давайте-ка войдём в систему как root и займёмся первичной настройкой и возвращением сбережённых данных на свои законные места.

Прежде всего, сам процесс входа. Если вы выбрали графический вход в систему на этапе настройки видеокарты, поздравляю, - дополнительные текстовые консоли, на которые мы переключались раньше при помощи комбинаций вроде Alt+Ctrl+F2, отныне по умолчанию заблокированы. Поэтому придётся войти root'ом графическим образом, запустить консоль от его имени и уже в ней производить необходимые операции. Я предпочитаю работать в программе эмуляции терминала, которая так и называется - konsole. Вызвать её можно, одновременно нажав клавиши Alt и F2: посреди экрана появится строка приглашения (что-то вроде директивы "Выполнить" в меню кнопки "Пуск" Windows); наберите там konsole и нажмите на Enter. Вот она, консоль.


Сперва разберёмся с vfat-разделами. Создадим точки монтирования /mnt/c и /mnt/d, после чего (без дополнительных изысков пока) подсоединим, что требуется:

mount -t vfat /dev/hde5 /mnt/d


(допустим, что файл etc.tar.bz2, архив бывшей директории /etc со всеми системным настройками, располагался именно там - на Windows-диске D:). Убедимся, что мы находимся в домашнем суперпользовательстком каталоге /root, и выполним команду:

tar xvjpf /mnt/d/etc.tar.bz2

Моментально образуется дерево каталогов /root/etc, в котором и будут содержаться сохранённые настройки прежней системы. Подойдём к их восстановлению творчески.

Рассудив здраво, удалим из новообразованного /root/etc все каталоги и файлы, названия которых нам не знакомы. Ведь если мы с ними не работали вручную, значит, они и так оптимально настраиваются системой, - стало быть, при новой установке об их адекватности беспокоиться не нужно. Оставшиеся давайте рассмотрим поподробнее. Но прежде - обратим более пристальное внимание на каталог /mnt.

Два привода, стоявшие на моём компьютере (DVD-ROM и CD-RW) были опознаны и автоматически смонтированы как /mnt/cdrom и /mnt/cdrom1 соответственно. При этом анализ (ls -l) каталога /dev показал, что /mnt/cdrom указывает на /dev/hda, а /dev/cdrom1 - на /dev/scd0. Необходимость обращаться к IDE-приводу CD-RW как к устройству SCSI обусловлена особенностями реализации программ для записи CD в Linux и никаких проблем совместимости не вызывает. Зато вот лично у меня вызывает недовольство такой порядок именования устройств, который в системе сложился на данный момент. И я хочу свести его к предыдущему: CD-RW монтировать к /mnt/cdrom, а DVD-ROM - к /mnt/dvdrom.


Сделать это очень просто. Создаём символическую ссылку

ln -s /dev/hda /dev/dvdrom

Уничтожаем неадекватную ссылку и модифицируем её:

rm -r /dev/cdrom
ln -s /dev/scd0 /dev/cdrom

И, наконец, создаём новую точку монтирования:

mkdir /mnt/dvdrom
rm -r /mnt/cdrom1
ln -s /dev/hda /dev/dvdrom

Вот теперь - самое время приняться за правку /etc/fstab.


Для примера откроем /root/etc/fstab в другом окне, и приведём действующую таблицу монтирования в соответствие со здравым смыслом. Помня, что текущая кодовая страница у нас - utf, а вовсе не koi8-r. Чтобы внесённые в /etc/fstab изменения возымели действие, отмонтируем пока /mnt/d и применим новую таблицу:

umount /mnt/d
mount -a

Дальнейшие действия достаточно очевидны. Файлы /etc/group, /etc/hosts, /etc/passwd и /etc/shadow приводятся в соответствие с их аналогами из /root/etc. Будьте внимательны с /etc/shadow - там есть смысл сохранить текущий пароль root (и прочих пользователей, если вы уже успели их завести). Очень важно убедиться, что учётные номера вновь заведённых пользователей с прежними именами совпадают с теми, что были раньше. Ведь в архивах, которые мы специально создавали с опцией сохранения принадлежности файлов, указание на права владения каждого файла хранится в виде явного указания номеров UID и GID. Кроме того, не забудьте перенести файл .bashrc из /root/etc/skel в /etc/skel - не зря же мы его создавали в своё время!

Теперь можно приняться за пользовательские домашние директории. Распаковав их, внимательно просмотрите все каталоги и файлы, названия которых начинаются с точки: вам вряд ли понадобится старое содержимое подавляющего большинства из них - хотя хранящиеся в каталоге .licq настройки ICQ-клиента и логи "асечных" разговоров я постарался, конечно же, сохранить.

Финальный штрих, которым мы завершим эпическое полотно переустановки системы - это то, чего ради, собственно, я вообще её затеял. Активизация нормального переключения клавиатурных раскладок. Однако для того, чтобы достичь этого, я не стану забираться в дебри настроек Центра управления KDE. Обращусь напрямую к конфигурационному файлу - /etc/X11/XF86Config.


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

Option "XkbLayout" "us,ru(winkeys)"

Затем назначим ответственными за переключение раскладок клавиши Alt и Shift при одновременном нажатии. А заодно - пусть загорающийся индикатор ScrollLock сигнализирует нам о факте переключения: если он не горит, значит, раскладка - первичная (us), если горит - альтернативная (ru):

Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"

Другие варианты переключателей таковы:

grp:toggle - переключение правым Alt;
grp:shift_toggle - двумя клавишами shift;
grp:ctrl_shift_toggle - ctrl+shift;
grp:ctrl_alt_toggle - ctrl+alt;
grp:caps_toggle - переключение по CapsLock;
grp:lwin_toggle - переключение по левой "Win" клавише на Windows;
grp:rwin_toggle- переключение по правой "Win" клавише на Windows клавиатуре (для X Window старше 4.2);
grp:menu_toggle- переключение по клавише "Контекстное меню" на Windows клавиатуре (для X Window старше 4.2);
ctrl:ctrl_ac - CapsLock;
grp:switch - переключение по правому Alt только на момент нажатия [5];
Вот теперь - можно начинать работу. Со следующего раза и приступим...

К следующей статье
К оглавлению
Компания "Ф-центр"c, 2003.
При перепечатке и цитировании ссылка обязательна.