Д. Колисниченко - Ubuntu 10. Краткое руководство пользователя
LBP3010/LBP3018/LBP3050, LBP3100/LBP3108/LBP3150, LBP3250, LBP3310, LBP5100, LBP5300, LBP3500, LBP3300, LBP5000, LBP3210, LBP3000, LBP2900, LBP3200, LBP-1120, LBP-1210.
Скачайте файл CAPTDRV180.tar.gz и распакуйте его. Затем перейдите в каталог CANON_UK/Driver/Debian (он появится в результате распаковки архива) и установите имеющиеся пакеты:
cd CANON_UK/Driver/Debian
sudo dpkg — i *.deb
После этого можно приступить к настройке принтера.
Информацию по настройке других моделей принтеров попытайтесь найти в Интернете.
Часть V
Ubuntu для опытного пользователя
Пятая часть книги предназначена опытным пользователям. В ней мы будем напрямую (в обычном текстовом редакторе, без использования конфигураторов) изменять некоторые конфигурационные файлы системы, поэтому все, что вы будете делать (даже под моим руководством), вы будете делать на свой страх и риск. Фактор человеческой ошибки никто не исключал. Можете ошибиться вы, когда будете перепечатывать строки конфигурационных файлов из книги, могу ошибиться и я. Так что будьте предельно осторожны!
Глава 19
Настройка загрузчика GRUB2
19.1. Несколько слов о GRUB2
Загрузчик GRUB (GRand Unified Bootloader) считается более гибким и современным, чем LILO (Linux Loader). Благодаря иной схеме загрузки операционных систем GRUB понимает больше файловых систем, нежели LILO, а именно: FAT/FAT32, ext2, ext3, ReiserFS, XFS, BSDFS и др.
Но время не стоит на месте. В свое время загрузчик GRUB пришел на смену LILO, поскольку последний не поддерживал загрузки с разделов, начинающихся после 1024-го цилиндра. Об этой проблеме знает, наверное, каждый опытный Linux-пользователь — ведь всего несколько лет назад она была актуальной (пока все дистрибутивы не перешли на GRUB). Точно такая же участь постигла и GRUB — на его место пришел GRUB2, умеющий загружаться с разделов файловой системы ext4. А загрузка с ext4-разделов просто необходима современному дистрибутиву.
Дальнейшая разработка GRUB полностью прекращена, к нему выпускаются лишь патчи. Имеется и патч, добавляющий в GRUB загрузку с файловой системы ext4. Я проделал следующий эксперимент. В Ubuntu 9.10 по умолчанию установлен GRUB2. Я его удалил (с сохранением конфигурационных файлов), затем установил GRUB (имеющаяся в составе версии 9.10 версия GRUB как раз поддерживает ext4), создал вручную его конфигурационный файл и перезагрузил систему — она загрузилась без ошибок. Однако учитывая, что будущее все-таки за GRUB2, я вернул его обратно на заслуженное место.
ПримечаниеНа скриншотах GRUB2, приведенных в этой книге, вы можете увидеть надпись GNU GRUB version 1.98. Так что же за версию GRUB мы рассматриваем — 1,98 или все-таки 2? Как выясняется, финальная версия GRUB2 до сих пор не вышла, и никто не знает, когда выйдет, но везде, в том числе и в репозиториях, эта версия называется GRUB2. Разработчики загрузчика специально применили нумерацию 1,98, чтобы показать, что пока это не финальная версия. А разработчики дистрибутивов начали ее активно использовать.
Но GRUB2 — не просто набор патчей для GRUB, это полностью новая разработка, созданная с «нуля». Именно поэтому у GRUB2 совершенно другой формат конфигурационного файла.
ПримечаниеВ Ubuntu GRUB2 используется, начиная с версии 9.10 — не зря я упомянул ее ранее. И в этой версии Ubuntu, и в новой — 10.04 — имеется один небольшой «глюк», связанный с установкой тайм-аута выбора операционной системы. Чуть позже мы решим эту проблему, а пока приступим к рассмотрению конфигурационных файлов GRUB2.
19.2. Конфигурационные файлы загрузчика
В листинге 19.1 приведен основной конфигурационный файл GRUB2 — /boot/grub/grub.cfg. Он не поддается редактированию вручную. Для его создания используется утилита /usr/sbm/grub-mkconfig, которая генерирует этот конфигурационный файл на основе шаблонов, хранящихся в каталоге /etc/grub.d, и настроек из файла /etc/default/grub.
Если вы знакомы с синтаксисом bash, то наверняка заметили, что синтаксис grub.cfg уж очень напоминает синтаксис bash-сценариев. Как уже было отмечено ранее, параметры GRUB2 задаются в файле /etc/default/grub, а в файле grub.cfg описываются элементы меню загрузчика.
Рассмотрим описание элемента меню:
В кавычках после команды menuentry находится описание элемента меню — можете заменить этот текст на все, что вам больше понравится (в том числе и на русский текст — используя кодировку UTF-8). Далее следуют команды GRUB. Например, команда insmod ext2 загружает модуль ext2. Обратите внимание — это не модуль ядра Linux! Это модуль GRUB2, находящийся в каталоге /boot/grub (файл ext2.mod).
Команда set root устанавливает загрузочное устройство. Формат имени устройства такой же, как в GRUB. Обратите внимание — несмотря на использование в команде set root формата имени в стиле обычного GRUB, далее используются постоянные имена устройств:
root=UUID=34eaa635-ef0e-4d5c-8b61-3c22c767834b
В современных дистрибутивах в конфигурационных файлах загрузчика имен в стиле /dev/sd** вы больше не встретите, хотя их можно использовать, если вам так удобнее.
После служебного слова linux задается ядро (файл ядра) и параметры, которые будут переданы ядру. Служебное слово initrd указывает на файл initrd.
Теперь рассмотрим файл /etc/default/grub, содержащий параметры GRUB2 (листинг 19.2). Поскольку этот файл вы будете редактировать чаще, чем grub.cfg, то комментарии для большего удобства я перевел на русский язык.
После изменения файла /etc/default/grub не забудьте запустить команду update-grub для обновления файла /boot/grub/grub.cfg.
При редактировании конфигурации GRUB2 нужно придерживаться одной стратегии из двух возможных. Первая заключается в ручном редактировании файла grub.cfg — вы редактируете его вручную и больше не используете других программ вроде grub-mkconfig или update-grub. Вторая стратегия заключается в использовании вспомогательных программ, но тогда не нужно вручную редактировать файл grub.cfg, иначе при последующем изменении файла grub.cfg программами grub-mkconfig и/или update-grub все изменения, внесенные вручную, будут уничтожены.
Небольшая неясность имеется с командами grub-mkconfig и update-grub — когда и какую команду использовать? Конфигурационный файл grub.cfg строится на базе файлов из каталога /etc/grub.d и параметров из файла /etc/default/grub. Если вы изменили только файл /etc/default/grub, достаточно будет команды update-grub. А вот если вы изменили какой-то файл из каталога /etc/grub.d, то нужно вводить обе команды:
sudo grub-mkconfig
sudo update-grub
Надо отметить, что файлы из каталога /etc/grub.d приходится редактировать довольно редко, но все же приходится, чем мы и займемся в следующем разделе и в главе 25, когда будем устанавливать пароль загрузчика GRUB2.
19.3. Установка тайм-аута выбора операционной системы. Редактирование параметров ядра Linux
По умолчанию GRUB2 не отображает меню выбора операционной системы. Следовательно, вы не можете ни выбрать другую операционную систему (в том числе и Windows), ни изменить параметры ядра Linux, ни выбрать режим восстановления или режим тестирования памяти. Одним словом, такое поведение загрузчика создает определенные неудобства.
Чуть ранее было сказано, что для установки тайм-аута загрузчика нужно отредактировать следующие параметры:
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
# Таймаут (в секундах)
GRUB_TIMEOUT="10"
Все правильно, но в том случае, если бы GRUB2 в Ubuntu не содержал «глюка»!
ПримечаниеВообще, «глюки» — это хорошо. Чем корявее будет Canonical делать свои дистрибутивы, тем больше будет работы у авторов книг и дистрибутивов на базе Ubuntu. Вы думаете, почему я создал свой дистрибутив Denix (denix.dkws.org.ua)? Нет, не для того, чтобы гордо ткнуть себя в грудь — мол, я тоже могу сделать свой дистрибутив! А для того, чтобы после каждой установки Ubuntu пользователи могли не тратить свое личное время, часами настраивая операционную систему.
Например, чтобы побороть такое неадекватное поведение (а каким его еще назвать, если программа не реагирует на установку параметров из конфигурационного файла) загрузчика, мне пришлось потратить минут 15–20. К своему решению я пришел экспериментальным путем, поэтому не удивлюсь, если на каком-то форуме в Интернете вы найдете другое решение (не исключаю, может быть даже лучшее).
Итак, откройте ваш файл /etc/grub.d/30_os-prober:
sudo nano /etc/grub.d/30_os-prober
Найдите в нем строку:
if ["x${GRUB_HIDDEN_TIMEOUT}" = "x0"]
Далее все значения -1 во фрагменте кода, представленном в листинге 19.3, замените на 1. Строки, которые нуждаются в редактировании, выделены полужирным шрифтом. Изменять значение -1 в остальном коде, выходящем за рамки листинга 19.3, не нужно!