Руководство начинающего пользователя Linux.
(Оно же "Руководство новичка - администратора Linux",
оно же - "Linux Newbie Administrator Guide" или просто LNAG).

Версия 0.193 2002-12-14 by Stan, Peter and Marie Klimas.
Оригинал на английском языке находится по адресу http://sunsite.dk/linux-newbie.
Переведено - ~77 %. Текст еще не прошёл литературную обработку :).
Все комментарии / исправления / сообщения по поводу перевода принимаются на xoid26@linux-online.ru.

Copyright (c) <1999-2002> Peter and Stan Klimas. Your feedback, comments, corrections, and improvements are appreciated. Send them to linux_nag@canada.com. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0, 8 or later http://opencontent.org/openpub/ with the modification noted in lnag_licence.html.

Главная | 0. Преимущества Linux | 1. Перед установкой | 2. Помощь | 3. Основы работы | 4.1. Способы загрузки
4.2. Накопители | 4.3. X Window System | 4.4. Конфигурации | 4.5. Работа в сети | 5. Команды | 6. Программы

Часть 4.1: Способы загрузки (LILO и GRUB). Перевод - Константин Фирсов.
[переведено полностью]

Содержание этой главы:
   4.1.0 LILO и GRUB
   4.1.1 Linux не может распознать всю мою память
   4.1.2 LILO показывает только LI (или LIL) и виснет
   4.1.3 Как мне изменить операционную систему которую LILO загружает по умолчанию?
   4.1.4 Приглашение LILO во время загрузки отображается на экране слишком малое (или слишком большое) время
   4.1.5 Удаляем Linux

4.1.0  LILO и GRUB

И новомодный GRUB и более старый LILO не являются загрузчиками (boot loaders) Linux. Они делают возможным выбор операционной системы для загрузки непосредственно перед загрузкой. Большинство (не все ли?) проблемы с загрузкой, описываимые в этой главе, возможно могут быть преодолены установкой более современного ядра Linux и последнего GRUB.  GRUB лучше чем LILO, поскольку LILO работает с абсолютными адресами жесткого диска для поиска загрузочного образа, тогда как GRUB понимает файловые системы и ищет файлы с загрузочными образами.  Мы рекомендуем использовать GRUB если у Вас есть выбор.

Основной конфигурационный файл GRUB /boot/grub/menu.lst (или grub.conf, в моей операционной системе один из них является символьной ссылкой на другой).  Здесь размещены пояснения к пунктам существующим в этих файлах:
#Строки, начинающиеся с # помечены как комментарии.
timeout 5
# Выше определяется, что установленная по умолчанию операционная система будет запущена через 5 секунд, если не трогать клавиатуру
default 0
# Здесь определяется, что по умолчанию будет загружаться операционная система стоящая в первой строчке меню. Если я использую "default 3" то будет загружена 4-я операционная система из списка.
#
title linux
kernel (hd0,2)/boot/vmlinuz root=/dev/hda3  mem=64M hdc=ide-scsi
# Предыдущие две строки определяют пункт меню загрузки, и устанавливают действия, совершаемые при выборе этого пункта.
#Первая строка дает имя пункту меню: "linux".
#Во второй строке указывается место расположения загрузочного образа:  физический жесткий диск N1(hd0),  Третий раздел (partition) (2), загрузочный образ - это файл  /boot/vmlinux
# Кроме того, во второй строке, ядру передаются следующие параметры:
# root=/dev/hda3  (т.е., сделать основным разделом (root partition) третий раздел первого физического жесткого диска (hda) ),
# mem=64M (i.e., форсировать использование 64 мегабайт физической памяти.).
# hdc=ide-scsi (использовать эмуляцию SCSI на моем CD, поскольку это - записывающий CD).
#
initrd /boot/initrd-2.4.17-custom.img
# определяет файлы, содержащие модули, необходимые во время загрузки, например, модуль, загружающий "Начальный виртуальный диск (initial ram disk)" (initrd).
# Я должен создать свой (поскольку я перекомпилировал ядро), используя  mkinitrd /boot/initrd-2.4.7-10custom.img 2.4.7-custom

Хорошая документация по GRUB доступна при использовании info grub

4.1.1 Linux не может распознать всю мою память

Если у Вас больше 64 мегабайт физической памяти, ядро Linux ver. 2.0.36 и ниже будет использовать, по умолчанию, только первые 64 MB. Для того, чтобы увидеть сколько оперативной памяти использует ваш Linux, напечатайте в командной строке:
cat /proc/meminfo
или
free

Вы можете проверить версию ядра с помощью команды:
uname -a

Последнее популярное ядро с "проблемами памяти", 2.0.36, поставлялось с RedHat 5.2.  Мой RedHat 6.0 с ядром 2.2.5-15 таких проблем не имеет.

Чтобы получить более 64 MB памяти в RH5.2, вы должны исправить (как суперпользователь(root)) файл /etc/lilo.conf, добавив перед "image=" строку подобную этой:
append="mem=80M"

Если у Вас не 80 MB, то поставьте свое значение. Чтобы почувствовать изменения в /etc/lilo.conf перезагрузите программу:
lilo

(убедитесь в отсутствии ошибок) и перезагрузите компьютер. После перезагрузки, Вы можете проверить эффект при помощи одной из команд:
cat /proc/meminfo
free

Для тестовых целей, или если у Вас проблемы, параметр определяющий количество памяти в командной строке LILO весьма полезен:

[Например, напечатайте в ней ] linux "mem=16M"

Иногда, я слышал, полезно пропустить несколько верхних мегабайт если у Вас проблемы с разрешением всей оперативной памяти, которую находит Ваша машина. Например, разрешите только 78 из Ваших 80 MB. Это очевидно в случае некоторых SCSI-контроллеров, использующих верхнюю часть основной памяти. Попробуйте это, чтобы оценить.

Иногда, на некоторых системах, Linux распознает только 16 MB памяти. Обычно это связано с установкой "memory hole at 15-16 MB" в BIOS (решение состоит в отключении этой установки BIOS). По всей видимости, хорощо бы отключить все установки в секции "advanced features" Вашего BIOS (Например, распознание вирусов (virus detection) в BIOS может быть постоянным источником проблем).

Смешение чипов памяти с различными временными характеристиками также может привести к проблемам с распознанием памяти или к краху системы (решение в подборе блоков памяти с одинаковыми временными характеристиками).

4.1.2 LILO показывает только LI (или LIL) и виснет.

Вот цитата из моей настольной книги "Red Hat Linux Unleashed" написанной Кемраном Хассайном (Kamran Hussain), Тимоти Паркером (Timothy Parker), и др. , опубликованной в издательстве SAMS Publishing:

"Когда LILO загружает себя, она выводит слово LILO. Каждая буква печатается перед или после выполнения некоторых специфичных действий. Если LILO зависает на некоторой точке, напечатанные буквы могут быть использованы для идентификации проблемы. [...]

LI [...] Это происходит в случае несовпадения геометрии или перемещения /etc/lilo/boot.b без выполнения установки Карты.

LIL [...] Это обычно вызвано ошибкой носителя данных или несовпадением геометрии."

Под геометрией понимается количество секторов/ головок/цилиндров (sectors/heads/cylinders), использованных в конфигурации жестких дисков в BIOS. Воспользуйтесь советом!

Это очень хорошая идея - иметь настольную книгу по Linux или хотя бы книгу о UNIX. Руководства по Windows бесполезны, но Linux - другое дело!  "Red Hat Linux Unleashed" очень хорошая книга, но,скорее всего, есть много других хороших руководств.

При ошибке LILO похожей на указанные, Вы можете загрузить свою машину с дискеты Linux или DOS. Вот некоторые основные возможности для исправления ошибок LILO, зависящие от типа ошибки:

1. Если LILO просто было разрушено (не совсем обычный случай), Вы можете удалить и переустановить его. Вы можете удалить LILO командой Linux:
lilo -u /dev/hda

или, под DOS:
FDISK/MBR

Это перезаписывает главную загрузочную запись (MBR), в которой располагается LILO, и заменяет ее "чистой" DOS-овской ерундой. Вы потеряете доступ к Linux если перезагрузите компьютер после удаления LILO (но Вы сможете загрузить Linux с дискеты и переустановить LILO поверх DOS MBR).

для переустановки LILO, просто выполните команду lilo (как суперпользователь (root)).

2. Задайте режим
линейный(linear)

в верхней части файла /etc/lilo.conf. Это весьма полезно для больших дисков (>8 GB). Смотрите man lilo.conf для детального понимания. Режим "linear" безопасен -- он не повредит хорошо работающей системе, так что можете установить его в любом случае.

Можете еще поработать с типом обращения к диску установленном в BIOS . Например, попереключайте режим LBA ("linear or large block access") в Вашем BIOS - это может помочь.

Вместо режима "linear" можете попробовать режим (полезный при более чем 1024 цилиндрах с большими дисками и новыми BIOSами):
lba32

Поскольку это новый режим, то он он не работает с LILO поставляемом с RH6.1 и ниже. Используйте последние Mandrake и RedHat если имеете дело с вариантом проблемы "LI". Диски становятся больше и больше, и изготовители BIOS пускаются на все новые трюки, чтобы поддержать их.

3. Загляните в BIOS, установите соответствие между геометрией диска указанной в BIOS и реальной. Под Linux, вы можете посмотреть используемую геометрию диска(Например, Для первого диска IDE):
hdparm -g  /dev/hda

Также вы можете использовать геометрию, рекомендованную производителем. Если Вы не найдете ее на самом устройстве, то поищите ее в сети, используя например Google, по номеру модели.

 
4. Поместите LILO на другой раздел (на другом диске) и, используя fdisk, сделайте этот раздел загрузочным (если ваша система позволяет загрузку с другого диска). Иначе, поменяйте диски местами, поставив первым на интерфейсе IDE(DOS-овский "C") тот, который поддерживается вашим стареньким BIOS лучше.

5. Может быть Вам более понравится "loadlin" чем "lilo". Из под DOS, посмотрите на вашем CDROM программу /dosutils/loadlin.exe.  Она запускает linux из под DOS.

6. Избавьтесь от LILO и используйте GRUB.  Mandrake 7.2 содержит GRUB как загрузчик по умолчанию.

4.1.3 Как мне изменить операционную систему которую LILO загружает по умолчанию?

Это может быть установлено в конфигурационном файле lilo /etc/lilo.conf .  Мой (lilo version 0.21.5.1-4MDK) выглядит примерно так:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
vga=normal
default=linux
keytable=/boot/us.klt
lba32
prompt
timeout=50
message=/boot/message
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz
        label=linux
        root=/dev/hda3
        append=" mem=96M"
        read-only
image=/boot/vmlinuz
        label=failsafe
        root=/dev/hda3
        append=" mem=96M failsafe"
        read-only
other=/dev/hda1
        label=windows
        table=/dev/hda
other=/dev/fd0
        label=floppy
        unsafe

Четыре "label=" объявляют имена вариантов загрузки. Операционная система, загружаемая по умолчанию определяется параметром "default=" в верхней части файла. При отсутствии параметра "default", будет выбран первый вариант загрузки, указанный в /etc/lilo.conf.

Не забывайте запускать команду
lilo

после любых изменений в /etc/lilo/conf.

Есть также графические программы конфигурирования lilo. например попробуйте, как суперпользователь (root), в X-терминале:
klilo &

4.1.4 Приглашение LILO во время загрузки отображается на экране слишком малое (или слишком большое) время

Добавьте или измените строку
delay=100

перед первым "image=" или "append=" операторе в вашем /etc/lilo.conf файле.  (Новейшие версии lilo могут использовать параметр "timeout" вместо "delay".) Число - время задержки в десятых долях секунды (0.1 сек.), следовательно в примере задержка составляет 10 секунд.  И не забудьте перезапустить lilo после внесения каких-либо изменений в /etc/lilo.conf , или Ваши изменения не вступят в силу.

4.1.5 Удаляем Linux

Если Вам действительно хочется "удалить" Linux, вы можете использовать две команды  (из под DOS или MS Windows):

LOCK C:
FDISK/MBR

что избавит Вас от LILO--это перезапишет главную загрузочную запись (MBR) на вашем первом жестком диске, заместив LILO. Команда "lock" позволяет "низкоуровневую (raw)" запись на диск, которая обычно запрещена в большинстве версий DOS из антивирусных соображений. Проблема с FDISK/MBR в том что он не сообщает об ошибках или успехе операции, так что лучше выполнять его с командой "lock". После этого можно удалить раздел Linux используя, например DOS-овскую программу "FDISK" для перераспределения дискового пространства.

Очевидно, MS FDISK не всегда справляется с удалением раздела Linux. В этом случае, можно использовать fdisk для linux . Для этого проще всего загрузиться с установочных дискет/CD Linux, и удалить раздел, используя средства управления разделами Linux когда они возникают в процессе процедуры "установки".

Если и это не поможет, то попробуйте метод очистки MBR, опубликованный по следующему адресу (http://www.linuxgazette.com/issue63/okopnik.html, edited for space):

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Предупреждение: Следующий совет полностью уничтожит вашу главную загрузочную запись (MBR), которая содержит ВСЮ информацию о разбиении вашего диска на разделы. НЕ ДЕЛАЙТЕ ЭТОГО. Если не уверены в том что это - именно тот вариант, которого Вы хотите добиться - после этого Ваш диск придет в начальное("совершенно чистое") состояние(ДАННЫЕ БУДУТ ПОТЕРЯНЫ ПОЛНОСТЬЮ), его надо будет снова разбивать на разделы и форматировать.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Решение для Linux. Если Вы можете загрузить Linux - скажем с дискеты - Вам нужна только команда "dd":

dd if=/dev/zero of=/dev/hda bs=512 count=1

Это заполнит MBR нулями. Естественно, вы должны быть суперпользователем(root).

Решение для DOS. загрузитесь с дискеты с программой "debug" на ней; запустите

debug

В командной строке('-'), зарезервируйте("block-fill") 512-байтный массив памяти с нулями:

f 9000:0 200 0

Перейдите в ассемблерный режим командой 'a', и введите следующий код:

mov dx,9000
mov es,dx
xor bx,bx
mov cx,0001
mov dx,0080
mov ax,0301
int 13
int 20

Нажмите <Enter> для выхода из режима ассемблера, сделайте глубокий вдох - и нажмите "g" для выполнения, после чего нажмите "q" для выхода из "debug". Ваш HD снова девственно чист, и готов к разбиению и форматированию.

Переход к части: 4.2 - Обращение к жестким дискам
На главную страницу