от Емил Бодушки(26-10-2004)

рейтинг (26)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Как да инсталираме Linux (статията е написана за Slackware-10.0) върху mirror RAID SerialATA диска, използващ Promise FastTrak 378 RAID контролер.

Като за начало трябва да кажа, че в CD –то от дистрибуцията няма подходящо ядро за целта. Прекомпилираме ядрото с поддръжка Processor type and features/Processor family; Processor type and features/High Memory Support; Processor type and features/Symmetric multi-processing support (необходимо е и gcc версия 3.x.). Ако използвате Линукс ядро различно от 2.4.26, ще ви се наложи да компилирате и драйвера http://www.promise.com/support/file/driver/1_fasttrak_tx4000_partial_source_1.00.0.19.zip Готово ядро 2.4.26 може да издърпате от http://emo.htsys.org/fasttrak/kernel-promise.i/bzImage, за същото ядро, готов драйвер http://emo.htsys.org/fasttrak/kernel-promise.i/ft3xx.o.
Издърпайте си initrd.gz от http://emo.htsys.org/fasttrak/kernel-promise.i/initrd.gz.
След като имате вече нов kernel, модул ft3xx.o, initrd.gz и двете CD-та с оригиналната дистрибуция на Slack10.0, можем да започнем. ( Пълен пакет за FastTrak378 - http://emo.htsys.org/fasttrak/kernel-promise.i/promise.i.tar.bz2 ).
Копираме цялото CD1 върху хард диска (~/cd1).
Вмъкваме в ~/cd1/isolinux/isolinux.cfg:
label promise.i
kernel /kernels/promise.i/bzImage
append initrd=initrd.img load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=6464 rw root=/dev/ram SLACK_KERNEL=promise.i
#vi ~/cd1/isolinux/isolinux.cfg

Вмъкваме в ~/cd1/isolinux/f3.txt:
promise.i - Kernel with support for PROMISE FastTrak
TX4000/376/378/S150 TX series RAID controllers
#vi ~/cd1/isolinux/f3.txt

Копираме initrd.gz (http://emo.htsys.org/fasttrak/kernel-promise.i/initrd.gz) в ~/cd1/isolinux/:
#cp initrd.gz ~/cd1/isolinux/
Създаваме нова директория kernels/promise.i
#mkdir ~/cd1/kernels/promise.i
Копираме /usr/src/linux/.config в новосъздадената директория:
#cp /usr/src/linux/.config ~/cd1/kernels/promise.i/config
Компресираме /usr/src/linux/System.map:
#gzip –c /usr/src/linux/System.map > ~/cd1/kernels/promise.i/System.map.gz
Копираме kernel-a (http://emo.htsys.org/fasttrak/kernel-promise.i/bzImage):
#cp /usr/src/linux/arch/i386/boot/bzImage ~/cd1/kernels/promise.i/
Копираме драйвера (http://emo.htsys.org/fasttrak/kernel-promise.i/ft3xx.o):
#cp ft3xx.o ~/cd1/kernels/
Влизаме в основната директория на копираното върху хард диска CD1 на slackware-10.0 дистрибуцията (тази с ChangeLog.txt в нея):
#cd ~/cd1
Създаваме iso файл:
#mkisofs -o /tmp/slackware.iso \
-R -J -V "Slackware Install" \
-x ./extra \
-x ./pasture \
-x ./patches \
-x ./source \
-x ./zipslack \
-hide-rr-moved \
-v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table \
-sort isolinux/iso.sort \
-b isolinux/isolinux.bin \
-c isolinux/isolinux.boot \
-A "Slackware Install CD1" .

Изгаряме /tmp/slackware.iso върху CD със cdrecord или с предпочитан от вас софтуер за запис.
По същия начин “ремонтираме” оригиналното CD2 от slackware-10.0 дистрибуцията.
Ако не ви се правят всички процедури, описани по-горе:
http://emo.htsys.org/fasttrak/iso/slackware10.0-cd1.iso
http://emo.htsys.org/fasttrak/iso/slackware10.0-cd2.iso
Предварителната подготовка е завършена ;)

Инсталираме от новосъздадените CD-та Slackware-10.0 на машината с FastTrak 378 RAID контролера, като на промпта BOOT: пишем:
BOOT: promise.i nousb
След като се появи #, трябва да се зареди модул ft3xx.o:
Проверете къде е закачен CDROM-ът!!! Моят е /dev/hdе
#mount /dev/hdе /cdrom
#insmod /cdrom/kernels/ft3xx.o
#umount /dev/hdе
Проверете съществува ли SCSI устройство:
#cat /proc/scsi/ft3xx/n (n е SCSI хост номерът), ако статусът е наред, RAID контролерът е “вдигнат” и може да продължите с инсталацията.
#fdisk /dev/sda (sda - ако нямате друг SCSI контролер)
#setup

Вероятно ще забележите, че при рестартирането след инсталацията на slack-а, kernel-ът няма да може да монтира коренната директория (Kernel panic: VFS: Unable to mount root fs). Ще направим още малко “леки” промени.
1. Зареждаме машината от CD-то. На промпта BOOT: пишем:
BOOT: promise.i root=/dev/sda1 nousb initrd=initrd.gz ro
(sda1 – ако /dev/sda1 е монтиран в / ;)
2. Копираме ft3xx.o в /lib/modules/`uname -r`/kernel/drivers/scsi/:
#cp ft3xx.o /lib/modules/`uname -r`/kernel/drivers/scsi/
3. Създаваме initrd.gz за зареждане на модул ft3xx.o преди монтирането на коренната директория.
#mkinitrd -c -m ft3xx.o
4. Проверете дали /boot/vmlinuz и kernel-а от CD1 - kernels/promise.i/bzImage са еднакви. Ако не – заменете /boot/vmlinuz с този от CD1 “коригираната” дистрибуция – kernel/promise.i/bzImage:
#cp –f /mnt/cdrom/kernels/promise.i/bzImage /boot/vmlinuz
5. Коригираме /etc/lilo.conf, като вмъкваме нов ред след image=/boot/vmlinuz - initrd = /boot/initrd.gz
#vi /etc/lilo.conf
6. Стартираме lilo:
#lilo
7. Рестартираме машината:
#shutdown –r now


Въпроси и забележки на: emo@htsys.org
;)


<< Проста защитна стена. | Универсалният изходен код >>