*
  Мысли   Галерея   Проекты   Тексты  
  Мысли   Галерея   Проекты   Тексты  
Giver: Compaq Evo N150  (2009-03-15 21:02:54)

Не так давно один парень попросил меня о помощи в установке ОС на ноутбук Compaq Evo N150. Дело в том, что привод сего устройства напрочь игнорирует все диски, которые ему показывали, с флеш-накопителей загрузка невозможна, других сменных носителей нет. По его словам ОС отсуствовала. Зато у меня есть переходник MINIIDE и привод от старшего брата ноутбука.

И вот в назначенный день ко мне явилась компания: сам парень, девушка, владелица ноутбука, сам ноутбук и диск с пиратской WIndows XP которому было предначертанно занять просторы винчестера. Причина неработоспособности ОС была на лицо — отсутствовал NTLDR, его девушка удалила посчитав вирусом — программно не отделатся — в руку легла отвертка. Ставить новую систему не было вообще никакого желания, хотелось просто подбросить NTLDR на его место и отпустить человека с миром. Но нужно было взгянуть на содержимое винчестера, что затруднительно сделать без загрузки ОС. Чем мы и занялись. Для начала попытались подтсавить привод, но он оказался неподходящим не только по интерфейсу, но даже по габаритам — на несколько миллиметров выше щели, предназначенной для него. После извлечения винчестера из нед машины обнаружилась вторая неудача — винчестер был неформатный, может и было имя сему стандарту, но подключать его у меня было не к чему. Единственным вариантом загрузки была загрузка по сети. Тогда место отвертки в руке занял бубен.

После включения соответсвующего пункта меню в CMOS SETUP ноутбук стал усиленно искать DHCP сервер при загрузке. Я реализовал его желание путем включения DHCP сервера у моего роутера. Но ноутбук отказался принимать его, сказав что не указано имя загрузочного файла. Тогда было решено заняться этим вопросом серьезно.

Ноутбук пытался загружаться с помощью технологии PXE, которая требовала наличие DHCP/BOOTP и TFTP демонов, а так же необходимые для загрузки файлы на TFTP. Итак приступаем к установке необходимого софта:

Забираем дистрибутивы BOOTP (http://www.sfr-fresh.com/linux/misc/bootpd-4.3.tar.gz) и TFTP (ftp://ftp.kernel.org/pub/software/network/tftp/tftp-hpa-5.0.tar.gz) демонов, распаковываем, ставим привычным ./configure && make && make install, после чего получаем полностью рабочую среду для старта по сети. Оба демона работают через inetd, прописываем их в конфигах:

/etc/inetd.conf:
        tftp         dgram   udp wait    root    /usr/sbin/tcpd  in.tftpd -s /home/giver/src/tftp
        bootps  dgram   udp wait    root    /usr/sbin/bootpd bootpd -i

/etc/services:
        bootps          67/udp          bootp           # BOOTP Server
        bootpc          68/udp                               # BOOTP Client

Теперь нам нужен загрузчик — берем PXELINUX входящий в состав коллекции загрузчиков syslinux (http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.73.tar.bz2), после сборки ложим файл pxelinux.0 в корневой каталог TFTP сервера. Теперь возник вопрос: «что грузить?». Нужно было что то легковесное, умеющее работать с сетью и имеющее набор инструментов для работы с жестким диском. Выбор пал на мой дистрибутив ShadowFly, который удовлетворял все требования, а если чего не хватало, можно будет быстро дособрать. Для загрузки кладем ядро (vmliuz) и образ файловой системы (initrd.img) на TFTP, затем настраваем загрузчик и BOOTP демона:

/etc/bootptab:
.192-168-1-10:ip=192.168.1.10:ha=00D0592AB123:gw=192.168.1.2: 
              ds=192.168.1.2:td=/home/giver/src/tftp:bf=/pxelinux.0:

/home/giver/src/tftp/pxelinux.cfg/C:
DEFAULT linux
LABEL linux
      KERNEL vmlinuz
      INITRD initrd.img
      APPEND initrd=initrd.img root=/dev/ram vga=4

После этих манипуляций ShadowFly успешно загрузился, сетевая карточка (Intel EEPRO100) поднялась без проблем пинком модуля в ядро. Винчестер объемом 15гб имел единственный NTFS раздел, важных данных, по заверениям владелицы, на нем не было. NTFS я смог смонтировать только для чтение (из-за использованя ядерного модуля, fuse+ntfs-3g в дистрибутиве нет), на нем оказалась почти голая WinXP с небольшим набором дополнительного прграмного обеспечения. Linux был, но как теперь установить женскую операционную систему? Можно было разбить и отформатировать винчестер в FAT32, затем залить на него дистрибутив, а вот как загрузить DOS, необходимый для запуска программы инсталяции? Тогда достаем из закромов дискету с IBM PC DOS и начинаем шаманство с квему. На образ дискеты помещаются: ibmbio.com, ibmdos.com, command.com, fdisk.com и format.com, затем создаем пустой файл — будущий винчестер — и грузимся в qemu:

$ dd if=/dev/zero of=dos.img bs=1M count=5
$ qemu -hda dos.img -fda floppy.img -boot a

В эмулируемой среде разбиваем винчестер и форматируем его с переносом системы — format c: /s. Вобщем этого хватит для начала, но лучше смонтировать единственный раздел виртуального винчестера и положить на него полезные утилиты типы PowerQuest Partition Magic, Volkov Commander, драйвера мыши, расширенной памяти и локализатор. После чего полученный образ выкладыаем на FTP и забираем. Забирать оказалось некуда, поэтому выделяем под свои нужды еще один RAM-disk:

# mke2fs /dev/ram1
# mkdir /mnt/loop
# mount /dev/ram1 /mnt/loop
# cd /mnt/loop
# wget ftp://i815/dos.img
# cat dos.img > /dev/hda

Последней коммандой мы перезаписываем таблицу раздело, загрузчик, и прочую информацию, хранящуюся в первых пяти мегабайтах винчестера. И после перезагрузки мы видим приглашение DOS. Разбиваем винчестер: 2гб FAT16 под дистрибутив (PC DOS не умеет FAT32) и всё остальное под FAT32. После сих манипуляций сново грузим по сети ShadowFly. На моей машине нет привода, диск с WinXP отправился в мой ноутбук, с которого файл можно забрать лишь по протоколу SAMBA — монитруем шару в каталог внутри FTP на рабочей станции и забираем дистрибутив оттуда. Снова в дос, пытаемся запустить i386winnt и получаем сообщение: «Имя файла или каталога указано неверно». Оказалось что либо pure-ftpd, либо samba урезала каталог до 512 файлов, а их там существенно больше. Пакуем i386 таром, забираем из под линукса и распаковываем — все файлы целы и на своих местах, перегружаемся в ДОС, запускаем winnt и получаем приветствия и бурные овации от инсталятора.


Имя:
Комментарий: