Порядок загрузки при помощи BIOS грубо таков:
1) BIOS читает 512 байт загрузочного (в соответствии со своими настройками) диска в память,
1.1) проверяет сигнатуру (последние 2 байта),
при неудаче говорит No bootable device
при успехе передаёт управление прочитанному
2) прочитанное, да-да, это загрузчик в MBR, для определённости будем говорить про LILO, в зависимости от настроек и, возможно, выбора пользователя
2.1) читает список секторов ядра (его подготовила команда lilo)
2.2) читает в память сектора ядра
2.3) готовит блок параметров ядра
2.4) передаёт управление ядру
3) ядро, получив управление,
3.1) инициализирует устройства и различные подсистемы
3.2) смотрит на полученный параметр root
3.3) пытается смонтировать корневое устройство, если не удалось -- паникует
3.4) загружает с корневого устройства init и отдаёт ему управление
4) init, получив управление,
4.1) действует в соответствии со своими файлами настройки (/etc/inittab)
4.2) стартовые сценарии монтируют файловые системы в соответствии с /etc/fstab
...
Поскольку имя устройства (/dev/sda, /dev/sdb, ...) зависит от наличного количества дисков в машине в конкретный момент, нужно представлять себе, в какой именно конфигурации накопителей будет работать клон. Здесь два основных момента: загрузчик, точнее передаваемый им ядру параметр root=, и /etc/fstab.
Допустим, в вашем примере:
/dev/sda -- источник
/dev/sdb -- копия
вы скопировали содержимое и правильно установили загрузчик, система загрузилась с копии. Как думаете, какой раздел примонтирован в /var? Правильно /dev/sda3 -- раздел с источника. Почему? Потому что в /etc/fstab у вас написано монтировать туда /dev/sda3. Но если диск будет переставлен в качестве sda в другую машину -- всё будет правильно.
Теперь про особенности собственно LILO. Нужно понимать, что команда lilo формирует список секторов ядра и начальный загрузчик в соответствии с файлом настройки и записывает его куда сказано в параметре boot= на момент выполнения команды lilo. Когда грузится машина, этот загрузчик получит управление, попытается прочесть список секторов загрузить содержимое секторов и передать им управление.
Цифровые коды загрузчика LILO описаны в разделе "BOOT ERRORS" руководства "man lilo" и имеют вполне опредмеченное значение. Разберём вашу диагностику:
L -- The first stage loader is a single sector, and is loaded by the BIOS or by the loader in the MBR. It loads the multi-sector second stage loader, but is very space limited. When the first stage loader gets control, it types the letter "L"; when it is ready to transfer control to the second stage loader it types the letter "I".
Очевидно, до I дело не дошло. Все коды ошибок, за исключением генерируемых самим LILO 40, 99 и 9A, являются кодами возврата BIOS. Причины:
- 0x01 Illegal Command This shouldn't happen, but if it does, it may indicate an attempt to access a disk which is not supported by the BIOS. Definitely check to see if the disk is seen by the BIOS first (and that the BIOS detail is complete).
- 0x07 Invalid initialization The BIOS failed to properly initialize the disk controller. You should control the BIOS setup parameters. A warm boot might help too. (Boot a rescue disc and rerun LILO.)
Теперь ко второму варианту, когда ядро всё же было загружено и получило управление. Как уже сказали выше, эта стадия зависит от передаваемого ядру параметра root=, наличия драйверов контроллера диска и корневой файловой системы в ядре или образе начальной загрузки initrd (тут добавляется необходимость правильного указания параметров при формировании initrd).
Arven пишет:и как теперь это исправить?(((( как открыть тот самый лило?
Вопрос не понятен. Как вариант -- загрузиться с третьего диска (которым клонировали или с дистрибутивного), поправить, что нужно. Либо передать параметр root=/dev/sda2 или root=802 руками при загрузке (на экране LILO нажать Tab, набрать имя загружаемого варианта, пробел, root=802, нажать Enter).