Установка Linux на ZIP диск с помощью ZIP дисковода, подключаемого к параллельному порту

John Wiggins

Перевод: Денис Дементьев, ASPLinux

Аннотация

Этот документ полезен тем, у кого есть ZIP дисковод, подключаемый к порту принтера, и кто желает иметь резервную или переносимую копию Linux на ZIP диске.


Содержание
Ответственность
Введение
Подготовка ZIP диска
Установка Red Hat 4.2
Установка Slackware 2.2
Создание /etc/fstab
Установка в Debian 1.2
Мысли вслух.
Авторские права

Ответственность

ВНИМАНИЕ: Я не знаю, работает ли IDE дисковод так же, как и подключаемый к порту принтера, поскольку у меня его нет, поэтому не спрашивайте об этом.

Часть об инсталляции Debian была просто скопирована автором с незначительными изменениями. Поэтому возможно некоторое дублирование указаний.

Этот документ предполагает следующее:


Введение

Этот документ состоит из четырех основных частей, каждая из которых описывает, как установить базовую часть системы Linux на 100МБ ZIP диск, используя дисковод, подключаемый к порту принтера. Первая часть описывает, как подготовить ZIP диск, и является общей для дистрибутивов Red Hat и Slackware. Вторая, третья и четвертая части описывают, как установить Red Hat 4.2, Slackware 2.2 и Debian 1.2 соответственно на ZIP диск.

Примечание: Я знаю, что RedHat 5.0 вышел, но между занятиями и работой я, скорее всего, смогу поработать с ним только в конце мая. Надеюсь, что я также смогу протестировать другие дистрибутивы.


Что нового

В конце концов я нашел время (хотя я должен был готовиться к экзамену по социологии...) для обновления этого документа. Спасибо всем, кто послал мне комментарии по электронной почте.

Новое в этом документе:

  • Дистрибутив Debian

  • LILO на флоппи диске

  • Новая версия Red Hat (4.2 Biltmore)

  • Сетевая конфигурация (Для Red Hat; не проверена)


Соглашения

Обозначает, что следующий текст это команды:

==> Обозначает примечание:
  ПРИМЕЧАНИЕ:
Обозначает образ экрана:
      Текст.


Обновления

Любые обновления можно посмотреть на: http://comp.uark.edu/~jwiggins/linuxZIP/


Ссылки

  • Installation-HOWTO

  • SCSI-HOWTO

  • NET-3-HOWTO (для раздела 4.3.3)

  • ZIP-Drive (mini-HOWTO)

  • Патч ядра ParPort kernel patch (дает доступ к сквозному порту принтера) http://www.cyberelk.demon.co.uk/parport/


Благодарности

Раздел Slackware 2.2 создан, благодаря помощи Michael Littlejohn mike@mesa7.mesa.colorado.edu

Раздел Debian 1.2 создан, благодаря помощи John D. Blair jdblair@uab.edu

Информация по LILO и многим другим вещам внесена, благодаря помощи Darcy Boese possum@niagara.com и Javier Rodriguez jrodrigu@nextgeninter.net.mx


Подготовка 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


Установка Red Hat 4.2

Если что-то, связанное с компьютерами, старше 3-х месяцев, то оно может считаться устаревшим и требует обновления. Так как у меня вряд ли найдется свободное время на обновление этого документа с каждой новой версией RedHat, то я постараюсь обновлять его, хотя бы через версию. Что касается остальных дистрибутивов, то, если авторы не вышлют мне обновления, то все останется как есть.


Что требуется

Я использовал:

  • Ядро 2.0.30

  • Дисковод Iomega, подключаемый к параллельному порту

  • Red Hat 4.2


Установка пакетов

Когда я впервые решил попробовать установить Red Hat на ZIP диск, я обнаружил, что намного проще использовать загрузочный диск Red Hat. Потом я очнулся. Тщательно разобрался с созданием загрузочного диска, спрашивал об этом даже у разных ребят с Red Hat, но в конце концов начал сдаваться, и в этот момент обнаружил ключ --root утилиты rpm.


Какие пакеты нужны

Я определил, какие пакеты нужны для инсталляции, посмотрев файл, найденный на одном из зеркал Red Hat. Он может быть найден на любом зеркале в
  redhat/redhat-4.2/i386/RedHat/base/comps

Я хотел включить в эту инсталляцию поддержку сети, но из-за того, что в Red Hat настройка сети выполняется из-под X, придется настраивать вручную скрипты из каталога /etc/sysconfig/ (см. раздел 4.3.3), по крайней мере попытаться.

Я решил не устанавливать пакеты для разработки программ, так как ZIP дисковод - довольно медленная штука для компилирования. Я так же решил не устанавливать X, в основном из-за места на диске. Позже я могу попробовать подмонтировать мой жесткий диск и создать символьную ссылку (symbolic link) на /usr, чтобы проверить, могу ли я заставить X работать.

Ниже приводится список установленных мной пакетов, в порядке установки. Помеченные знаком * были обновлены с Red Hat. В скобках приводятся номера обновленных пакетов.
например NetKit-B-0.09-6 был обновлен на NetKit-B-0.09-8, поэтому строка будет такой: *91) NetKit-B-0.09-6 (-8)

      (Список создан командой rpm --root /iomega -qa)

       1) setup-1.7-2                   2) pamconfig-0.51-2
       3) filesystem-1.3-1              4) MAKEDEV-2.2-9
       5) adduser-1.7-1                 6) libc-5.3.12-18
       7) SysVinit-2.64-8               8) ash-0.2-8
       9) at-2.9b-2                    10) libtermcap-2.0.8-4
      11) bash-1.14.7-1                12) bc-1.03-6
      13) bdflush-1.5-5                14) cpio-2.4.2-4
      15) cracklib-dicts-2.5-1         16) tmpwatch-1.2-1
      17) crontabs-1.5-1              *18) db-1.85-10 (-11)
      19) dev-2.5.1-1                  20) diffutils-2.7-5
      21) etcskel-1.3-1                22) file-3.22-5
      23) fileutils-3.16-1             24) findutils-4.1-11
      25) grep-2.0-5                   26) groff-1.10-8
     *27) ld.so-1.7.14-4 (-5)          28) getty_ps-2.0.7h-4
      29) gzip-1.2.4-7                 30) mingetty-0.9.4-3
     *31) initscripts-2.92-1 (93-1)    32) ed-0.2-5
      33) info-3.9-1                   34) ncurses-1.9.9e-4
      35) libg++-2.7.1.4-5            *36) pwdb-0.54-3 (-4)
      37) rootfiles-1.5-1             *38) pam-0.57-2 (-4)
      39) redhat-release-4.2-1         40) less-321-3
      41) mount-2.5l-2                 42) zlib-1.0.4-1
      43) rpm-2.3.11-1                 44) e2fsprogs-1.10-0
      45) sysklogd-1.3-15              46) tar-1.11.8-11
      47) passwd-0.50-7                48) gawk-3.0.2-1
      49) gdbm-1.7.3-8                 50) gpm-1.10-8
      51) hdparm-3.1-2                 52) kbd-0.91-9
      53) slang-0.99.37-2              54) newt-0.8-1
      55) kbdconfig-1.4-1              56) ncompress-4.2.4-7
     *57) sh-utils-1.16-4 (-5)         58) procinfo-0.9-1
     *59) logrotate-2.3-3 (4-1)        60) lilo-0.19-1
      61) losetup-2.5l-2               62) linuxthreads-0.5-1
     *63) mkinitrd-1.6-1 (7-1)         64) mailcap-1.0-3
     *65) man-1.4h-5 (j-1)             66) mt-st-0.4-2
      67) modules-2.0.0-5              68) mailx-5.5.kw-6
      69) net-tools-1.32.alpha-2       70) procmail-3.10-10
      71) procps-1.01-11               72) psmisc-11-4
      73) quota-1.55-4                 74) readline-2.0-10
      75) sed-2.05-6                   76) setconsole-1.0-1
      77) sendmail-8.8.5-4             78) shadow-utils-960530-6
      79) stat-1.5-5                   80) tcsh-6.06-10
      81) termcap-9.12.6-5             82) textutils-1.22-1
      83) time-1.7-1                   84) timeconfig-1.8-1
      85) util-linux-2.5-38            86) vim-4.5-2
      87) vixie-cron-3.0.1-14          88) which-1.0-5
      89) zoneinfo-96i-4               90) tcp_wrappers-7.5-1
     *91) NetKit-B-0.09-6 (-8)        *92) lpr-0.18-1 (19-1)
     *93) bind-4.9.5p1-2 (9.6-1)      *94) bind-utils-4.9.5p1-2 (9.6-1)
     *95) wu-ftpd-2.4.2b12-6 (b15-1)   96) anonftp-2.3-3
      97) zip-2.1-1                    98) unzip-5.12-5
      99) statserial-1.1-7            100) minicom-1.75-2
     101) lrzsz-0.12.14-1             102) dip-3.3.7o-9
     103) ppp-2.2.0f-3                104) portmap-4.0-3
     105) perl-5.003-8               *106) traceroute-1.0.4.4bsd-2 (1.4a5-1)
    *107) elm-2.4.25-7 (-8)           108) lynx-2.6-2 
     109) ncftp-2.3.0-5               110) pine-3.95-2
     111) rdate-0.960923-1            112) apache-1.1.3-3
    *113) nfs-server-2.2beta16-7     *114) nfs-server-clients-2.2beta16-7
          (2.2beta16-8)                    (2.2beta16-8)
После установки вышеприведенного списка у меня осталось свободными 32 МБ!


Обновления

Как знают (надеюсь) пользователи Red Hat, некоторые пакеты могут иметь ошибки, связанные с безопасностью (security), или что-то еще может заставить выпустить новую подверсию. Для таких случаев Red Hat выпускает обновления пакетов. Я обновил те пакеты, для которых имелись обновления, они отмечены в списке. Страничка Red Hat с информацией по обновлениям пакетов:

http://www.redhat.com/support/docs/rhl/rh42-errata-general.html

   ПРИМЕЧАНИЕ: Перед обновлением пакетов нужно запустить ldconfig, как описано в разделе 3.3.1.1.


Как устанавливать пакеты с помощью rpm; без glint

При использовании rpm для указания подмонтированных каталогов в качестве корня для установки, используйте ключ --root. Я обнаружил, что многие пакеты не устанавливаются, так их пред- или послеустановочные скрипты неправильно работали из-за смены корневого каталога, поэтому используем ключ --noscripts:

==> rpm --root /iomega -i --noscripts PACKAGE.i386.rpm

Как многие заметят, вы должны будете получить сообщение типа:
  failed to open /iomega/var/lib/rpm/packages.rpm

  error: cannot open /iomega/var/lib/rpm/packages.rpm
Просто создайте каталог var/lib/rpm :)

==> mkdir /iomega/var; mkdir /iomega/var/lib; mkdir /iomega/var/lib/rpm


Что было первым, pamconfig или pam?

Если кто-нибудь пробовал установить pamconfig, то он заметил, что этот пакет жалуется на отсутствие установленного pam; pam в свою очередь при попытке установки жалуется на отсутствие установленного pamconfig! Этот вопрос о яйце и курице, над которым я поломал голову некоторе время, решается с помощью ключа --nodeps - мы можем заставить pamconfig поставиться; pam зависит не только от pamconfig.

==> rpm --root /iomega -i --nodeps --noscripts pamconfig-0.51-2


Проблемы после установки пакетов

После того, как все замечательно установилось, диск все же не является рабочим. Я хочу сказать, что если вы попытаетесь загрузиться с дискеты, то далеко не уйдете. Как только init попытается запуститься, вы получите две замечательных ошибки - обе об отсутствии необходимых файлов, которые были бы найдены, если бы при установке пакетов запускались скрипты.


Случай отсутствия /etc/ld.so.cache и libc.so.5

Если вы пытались загрузиться, то получали две ошибки, первую об отсутствии файла /etc/ld.so.cache, вторую об отстутстуии libc.so.5.


/etc/ld.so.cache

Как указали многие читатели, мои прошлые указания не работали не совсем так, как мне хотелось. Чтобы этот файл создался, вам нужно запустить ldconfig с подмонтированным ZIP диском:

==> chroot /iomega /sbin/ldconfig

Благодарю Javier Rodriguez за это решение.


libc.so.5

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

==> cd /iomega/lib; ln -s libc.so.5.3.12 libc.so.5

Благодарю Darcy Boese за это решение.


Установка пароля root

Точно так же, как был запущен ldconfig, вы можете запустить passwd для смены пароля root в новой системе:

==> chroot /iomega passwd root


Что создает программа установки

       ПРИМЕЧАНИЕ: Это очень краткая настройка, которую я не имел возможности проверить. Теоретически она должна работать, но не жалуйтесь, пожалуйста, если она не работает.

Исследуя свой компакт-диск с Red Had 4.2 CD-ROM, я нашел кое-что интересное - исходные тексты программы установки. Они лежали в каталоге /midc/src/install. Один из файлов назывался net.c и в нем я обнаружил, какие файлы создаются при работе программы установки. Большиство этих файлов необходимо для работы в сети, но даже если у вас нет сетевой карты, можно использовать localhost для поддержки сети (плюс apache будет ругаться, что он не может определить имя хоста.) Список файлов:
      /etc/hosts
      /etc/HOSTNAME
      /etc/resolv.conf
      /etc/sysconfig/network
      /etc/sysconfig/network-scripts/ifcfg-eth0
      (or any other network device you may have.)


Настройка сети

При создании этого документа я хотел получить поддержку для моей сетевой карты 3Com 3c595 (которая последние семь месяцев стоит на другой машине.)

Во-первых, мне нужно было имя, и, так как у меня работает свой собственный сервер имен (name server) (но это уже другая история), я придумал себе имя: dash-dot.wig.org (мне нравится как это звучит). Имя без IP адреса бесполезно, и я взял адрес из подсети 192.168.10.0, зарезервированной для использования вне сети Internet, и поддерживаемой моим сервером имен. Хотя имя машины (hostname) обычно лежит в /etc/HOSTNAME, Red Hat также проверяет /etc/sysconfig/network, так что давайте начнем отсюда. Пример моего /etc/sysconfig/network:
  NETWORKING=yes
  HOSTNAME=dash-dot
  DOMAINNAME=wig.org
  GATEWAY=
  GATEWAYDEV=eth0
  NS1=192.168.10.7
Затем, в общем случае, копируем ту же информацию в /etc/HOSTNAME, /etc/resolv.conf и /etc/hosts:

/etc/HOSTNAME:

dash-dot.wig.org

/etc/resolv.conf:

search wig.org
nameserver ns.wig.org

/etc/hosts:

127.0.0.1 localhost
192.168.10.99 dash-dot.wig.org dash-dot
192.168.10.7  ns.wig.org ns
Red Hat настраивает все сетевые устройства с помощью скриптов, лежащих в /etc/sysconfig/network-scripts. Настройка скриптов обычно производится программой установки, поэтому мне придется делать все это вручную. Все они начинаются с ifcfg-XXX, где XXX - сетевой интерфейс, поднимаемый ifconfig; например ppp0, eth0 и т.п. В частности я создал файл ifcfg-eth0 со следующим содержимым:
  DEVICE=eth0
  ONBOOT=yes
  BOOTPROTO=none
  BROADCAST=192.168.10.255
  NETWORK=192.168.10.0
  NETMASK=255.255.255.0
  IPADDR=192.168.10.99
И последнее. Чтобы проверить правильность настройки, пока мы находимся в каталоге /etc/sysconfig/network-scripts, запустите:

==> ./ifup ifcfg-eth0 boot

Эта команда выполняет скрипт, поднимающий сетевой интерфейс, настроенный на запуск при загрузке системы.

Для дополнительной информации смотрите документ NET-3-HOWTO.


Установка Slackware 2.2

    ПРИМЕЧАНИЕ: Эта часть не обновлялась.


Требования

  • ZIP диск и дисковод (естественно)

  • Ядро с поддержкой ZIP

  • ZIP Howto (рекомендуется)

  • Форматированный 1.44" HD флоппи диск

  • 1 - 2 часа свободного времени


Установка

Итак, сначала самая веселая часть: определение списка файлов, необходимых для системного диска и пакетов, которые вы хотите установить (если влезут) на ZIP диск.

Я решил, что простейший способ - это установить Slackware непостредственно на ZIP диск. Я решил воспользоваться этим подходом в основном из-за того, что дистрибутив Slackware меньше размером, чем Red Hat, и мне проще будет отсечь то, что не нужно. И тот факт, что я пользуюсь дистрибутивом Slackware, сделал этот выбор явным.

Установка Slackware на ZIP дис довольно проста - запустите root-ом программу установки, выберите в качестве цели установки раздел /iomega, а в качестве источника - местоположение дистрибутива Slackware (cdrom, жесткий диск и т.п.), и следуйте указаниям.


Что ставить

Самая сложная часть - определение того, что вам нужно, а что нет. Обязательно понадобиться часть 'A' (около 8 мб), остальное на ваше усмотрение.

Я постарался обрезать дистрибутив Slackware до приемлемого размера в 70 мб. При этом в него вошли gcc/g++, perl, X11R6 (НЕ ПОЛНОСТЬЮ!), sendmail, документация (без руководства по разработке программ, но со всеми howto), и набор других нужных мне вещей. На файлы пользователей осталось около 10 мб. YMMV


Создание /etc/fstab

(Общая для дистрибутивов Red Hat и Slackware)

Последнее, что нужно сделать до перезагрузки - создать файл fstab. Вот что по минимуму должно быть в /iomega/etc/fstab:
  /dev/sda1      /         ext2        defaults   1   1
  /dev/sda2      none      swap        sw
  none           /proc     proc        defaults   1   1
Сохраните файл, презагрузитесь с созданного загрузочного диска и наслаждайтесь!

(Особо благодарю Mike за напоминание об этой очень важной части - John)


Установка в Debian 1.2

    ПРИМЕЧАНИЕ: Автор этой части послал мне ее в 11 июня 1997 г.


Требования

  • ZIP дисковод, подключаемый к параллельному порту и диск.

  • 2 чистых 1.44 флоппи диска

  • Полный набор установочных дисков Debian. (загляните в документацию по установке Debian, если забыли? как это сделать)

  • Несколько часов свободного времени


Обзор

После нескольких часов сражения с dpkg я решил, что будет проще изменить "аварийный" ("Rescue") диск Debian так, чтобы он понимал ZIP дисковод. Это оказалось очень просто. Далее вы можете использовать этот диск для установки базовой части Debian. После окончания установки базовой части можно запустить систему с загрузочного диска и закончить установку с помощью dselect. Для того, чтобы воспользоваться этим способом, вам понадобится два ядра - одно с поддержкой параллельного порта и RAM диска, второе без поддержки RAM диска.

Если пожелаете, можете пропустить раздел 2 и дать программе установки Debian отформатировать ZIP диск.


Создание исправленного аварийного диска

Аварийный диск Debian - это загрузочный диск типа SYSLINUX. Он создается на отформатированном в формате MS-DOS флоппи диске со специальным загрузчиком, предотвращающим загрузку MS-DOS. Такой диск очень легко править для создания своей собственной конфигурации загрузки. Пакет 'boot-floppies' Debian содержит набор скриптов для облегчения создания загрузочных дисков. Впрочем, создать диск настолько просто, что я предпочел сделать все вручную. Это немного расходится с философией Debian, но я выше этого :). Краткие указания вы можете найти в файле 'readme.txt' на аварийном диске.


Воспользуйтесь dd (или RAWRITE под DOS) для создания аварийного диска.

Если вы забыли, как это делается, загляните в документацию по установке Debian.


Соберите новое ядро с поддержкой ZIP дисковода, подключаемого к параллельному порту

Включите поддержку ZIP дисковода, подключаемого к параллельному порту (см. пункт 3.3.1), поддержкой RAM диска и загрузочного RAM диска (initial RAM). Кроме того требуется поддержка файловых систем msdos, fat, minix, ext2fs и procfs.

Настройте модули, которые вы желаете видеть в системе, устанавливаемой на ZIP диск.

Соберите ядро:

==> make dep; make clean

==> make bzImage

Соберите модули:

==> make modules

Установим их попозже.

          ПРИМЕЧАНИЕ: Убедитесь в том, что вы дали команду 'make bzImage', а не 'make zImage'.


Подключите новый аварийный диск.

==> fdmount fd0

или

==> mount /dev/fd0 /mnt

или

==> whatever :)


Скопируйте ядро

Скопируйте ядро (на платформах i386 оно лежит в каталоге arch/i386/boot/bzImage) в 'linux' на флоппи диске.


Редактирование скрипта 'rdev.sh'

Откройте файл 'rdev.sh' с аварийного диска вашим любимым редактором. Измените последнюю строку с
       'rdev /mnt/linux /dev/ram0'
на:
       'rdev /mnt/linux /dev/sda1'

Кроме того, везде, где встречается /mnt/linux, замените его на соответствующий путь. Например, я подключаю мои флоппи диски в /fd0, поэтому меняю /mnt/linux на /fd0/linux.


Установите базовую часть Debian на ZIP диск.

Загрузитесь с исправленного аварийного диска. Если все пойдет как надо, то вы окажетесь в меню программы установки Debian. Единственное отличие будет в том, что вы будете работать с ZIP диском. Продолжайте установку, как если бы ставили систему на жесткий диск, только подключите в качстве корневой файловой системы /dev/sda1, а в качестве раздела подкачки - /dev/sda2.

Есть еще одно отклонение от стандартного процесса установки - не устанавливайте и/или не настраивайте подгружаемые модули. Они будут установлены позже (пункт 7.3.2).


Создайте загрузочный диск

Создание загрузочного диска описано в пунктах 3.3.1 и 3.3.2. Если хотите, можете просто выбрать пункт "Create Boot Disk" ("Создать загрузочный диск") во время установки Debian. Мне больше нравится второй способ, так как в этом случае я получаю еще один SYSLINUX диск. Я могу добавить параметры загрузки ядра и изменить приветствие (greeting message), описав в нем, что это за диск. Можно даже назначить функциональные клавиши для просмотра справки. Позже вы можете пересобрать ядро и убрать поддержку RAM-диска, изменив диск вручную. Выбор за вами.


Перезагрузите систему.

Вставьте загрузочный диск в дисковод и выберите пункт 'Reboot' (перезагрузка) в меню программы установки.


Настройте базовую часть системы и закончите установку.

После перезагрузки вы получите работающую (хоть и медленно) с ZIP диска базовую часть системы Debian. Продолжайте установку, как обычно. Я ставил все стандартные утилиты UNIX, документацию, make, gcc, библиотеки, и различные полезные утилиты для работы с файлами. В результате я получал мощную систему аварийной загрузки, с помощью которой мог восстанавливать любые системы в нашем отделе.
        ПРИМЕЧАНИЕ: Для следующего пункта вам понадобится установить 'make'.


Установка модулей, собранных в пункте 7.3.2.

Если вы установили make, то можете подключить раздел жесткого диска с собранным ядром, перейти в нужный каталог и выполнить команду 'make modules_install'. Пример:

==> mount /dev/hda2 /mnt

==> cd /mnt/usr/src/linux

==> make modules_install

        ПРИМЕЧАНИЕ: Вам не нужно править /etc/fstab (как в пункте 5). Программа установки Debian уже позаботилась об этом.


Мысли вслух.

Уффф. После того как я записал 31 ZIP диск и ZIP дисковод полностью посадил батарейки, я решил: следующее, что я попытаюсь сделать - заставить работать pcmcia на моем лэптопе.


Авторские права

Авторские права на русский перевод этого текста принадлежат ╘ 2000 ASPLinux Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу