Установка Linux на ZIP диск с помощью ZIP дисковода, подключаемого к параллельному порту |
---|
Пред. | | След. |
Подготовка ZIP диска
(Общая для дистрибутивов RedHat и Slackware.) Перед началом убедитесь, что у вас есть доступ к ZIP дисководу; должна иметься поддержка ppa или в ядре, или загруженным модулем. Простой способ убедиться в этом - команда dmesg:
==> dmesg
Возможно придется использовать more, так как dmesg может быть очень длинным. Вот вырезка из моего:
scsi0 : PPA driver version 0.26 using 4-bit mode on port 0x3bc.
scsi : 1 host.
Vendor: IOMEGA Model: ZIP 100 Rev: D.08
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi removable disk sda at scsi0, channel 0, id 6, lun 0
SCSI device sda: hdwr sector= 512 bytes. Sectors= 196608 [96 MB] [0.1 GB]
sda: Write Protect is off
sda: sda1 sda2 |
Если вы видите что-то типа:
scsi : 0 hosts.
scsi : detected total. |
то у вас есть поддержка SCSI, но ZIP не был найден.
Создание разделов на ZIP диске
Для создания разделов на ZIP диске запустите fdisk:
==> fdisk /dev/sda/
Ниже таблица разделов, созданная мной:
Disk /dev/sda: 64 heads, 32 sectors, 96 cylinders
Units = cylinders of 2048 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/sda1 1 1 81 82928 83 Linux native
/dev/sda2 82 82 96 15360 82 Linux swap |
Я создал раздел подкачки, так как хотел иметь возможность использовать этот диск на любой машине.
Форматирование и подключение ZIP диска
После выхода из fdisk создайте файловую систему на новом разделе:
==> mke2fs -c /dev/sda1
Затем подготовьте раздел подкачки (число блоков (15360) берется из fdisk-а):
==> mkswap -c /dev/sda2 15360
Ну и наконец, подключите ZIP диск:
==> mount /dev/sda1 /iomega -t ext2
Создание загрузочного диска
Из-за того, что ZIP дисковод, подключаемый к порту принтера, не является настоящим SCSI устройством, с него нельзя загрузиться. Поэтому требуется загрузочный диск, с включенной в ядро (не модулем) поддержкой ppa.
Конфигурация и сборка ядра
Сперва нужно настроить и собрать ядро, с включенной (не модулем) поддержкой ppa. Чтобы включить ее, включите поддержку SCSI:
SCSI support (CONFIG_SCSI) [Y/m/n/?]
Плюс поддержку SCSI дисков:
SCSI disk support (CONFIG_BLK_DEV_SD) [Y/m/n/?]
И, наконец, в SCSI low-level drivers (низкоуровнеые драйверы SCSI), поддержку ppa:
IOMEGA Parallel Port ZIP drive SCSI support (CONFIG_SCSI_PPA) [Y/m/n/?]
Повторюсь, удостоверьтесь в том, что поддержка ppa будет именно в ядре, а не модулем. Более того, без патча ядра для параллельного порта (см. п. 1.4) драйвер ppa не позволит использовать пассивный порт ZIP дисковода для подключения принтера, так что, возможно, вы пожелаете выключить поддержку принтера, подключаемого к параллельному порту:
Parallel printer support (CONFIG_PRINTER) [N/y/m/?]
ПРИМЕЧАНИЕ: Для дополнительной информации по драйверу ppa, смотрите ZIP-Drive mini-HOWTO. |
После настройки ядра соберите его:
==> make dep; make clean; make zImage
Новое ядро будет лежать в arch/i386/boot/zImage.
Запись ядра на флоппи-диск
После того, как мне пришлось держать 4 отдельных флоппи-диска с разными ядрами, требовавшими разные параметры (плюс кучу почты, рассказывающей, как это сделать), я включил подраздел, посвященный LILO, в раздел, описывающий создание загрузочного диска.
Установка LILO
Для тех, кому нужно или хочется иметь несколько ядер на одном флоппи (на сегодняшний день мои ядра слишком большие), или хочется передавать параметры загрузки (такие как однопользовательский режим) - я перечитал кучу почты об установке LILO на флоппи.
Создание файловой системы ext2
Для создания файловой системы ext2 на флоппи просто дайте ту же команду, что и для ZIP диска:
==> mke2fs -t /dev/fd0
Копирование необходимых файлов
Далее убедитесь, что существует каталог для точки монтирования, и подмонтируйте флоппи (я использовал /mnt/floppy):
==> mount /dev/fd0 /mnt/floppy -t ext2
Для правильной загрузки вам нужны будут файлы, используемые LILO на вашей текущей инсталляции Linux.
ПРИМЕЧАНИЕ: расположение файлов ниже взято с моей машины и может не совпадать с вашим. |
==> cp /boot/boot.b /mnt/floppy
==> cp /boot/map /mnt/floppy
==> cp /usr/src/linux/arch/i386/boot/zImage /mnt/floppy/vmlinuzDESK
Теперь нужно создать конфигурационный файл для LILO. Использование утилиты liloconfig мною пропущено... (Благодарю Javier Rodriguez за эту информацию) Создайте конфигурационный файл /mnt/floppy/lilo.conf для ядра(ядер) на ZIP диске. Чтобы иметь возможность тестировать различные ядра, я использовал следующий:
boot=/dev/fd0
map=/mnt/floppy/map
install=/mnt/floppy/boot.b
prompt
compact
timeout=50
image=/mnt/floppy/vmlinuzLAP
label=Laptop
root=/dev/sda1
read-only
image=/mnt/floppy/vmlinuzDESK
label=Desktop
root=/dev/sda1
read-only
image=/mnt/floppy/vmlinuzDESK
label=rescue
root=/dev/hdc1
read-only |
У меня два ядра: одно для моего 486 лэптопа, требующего эмуляцию сопроцессора в ядре, а второе для моего настольного компьютера. Третий пункт позволяет мне в крайних случаях загрузится с жесткого диска.
Наконец, не демонтируя диск, запустите LILO для его установки на флоппи командой:
==> lilo -C /mnt/floppy/lilo.conf
После успешной установки LILO на флоппи можете пропустить следующих два пункта, если вы конечно не хотите повторить то, что уже сделали :)
Установка только ядра
ПРИМЕЧАНИЕ: Этот пункт не относится к установке LILO. |
Скопируйте свежесобранное ядро на флоппи-диск:
==> cp arch/i386/boot/zImage /dev/fd0
или
==> cat arch/i386/boot/zImage > /dev/fd0
Да, есть много способов скопировать ядро на флоппи-диск, но последний, мой любимый, не так очевиден. Постарайтесь не забыть >, если вы не фанат просмотра двоичных файлов :)
Настройка корневого раздела и свопа на флоппи
ПРИМЕЧАНИЕ: Этот пункт не относится к установке LILO. |
Как только ядро окажется на флоппи-диске, вам понадобится указать, что корневой раздел находится на ZIP диске:
==> rdev /dev/fd0 /dev/sda1
Я не уверен, что следующая команда нужна, но я все равно ее выполнял. Для указания местонахождения раздела подкачки:
==> rdev -s /dev/fd0 /dev/sda2