Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[howto] raid 5 eide hpt454 grub boot kerne 2.6.9
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
eaglematt
Tux's lil' helper
Tux's lil' helper


Joined: 27 Jan 2004
Posts: 140

PostPosted: Tue Dec 14, 2004 4:18 pm    Post subject: [howto] raid 5 eide hpt454 grub boot kerne 2.6.9 Reply with quote

Ciao a tutti
Questa volta contribuisco un po' spero di essere chiaro

Il tutto si basa su questo topic leggermente modificato :
https://forums.gentoo.org/viewtopic.php?t=18894&highlight=howto+highpoint
https://forums.gentoo.org/viewtopic.php?t=7460&highlight=howto+highpoint

Allora partiamo :D
Materiale necessario:
una gentoo funzionante
1.una gentoo funzionante minimale installata su un hdd eide standard con kernel con scsi support abilitato
2.i driver scaricati dal sito highpoint (o quelli del prorpio controllore)
3. Il controller highpoint configurato ed il raid HW creato (nel mio caso raid5)

Un po' di teoria
Il problema è che il kernel 2.6.9 non gestisce i controller raid hw :(
ma il driver proprietario si! 8O inoltre grub (il mio bootloader) ha qualche problema con l'identificazione dell'hdd corretto

Partiamo dal driver l'idea forse banale è di inserire il modulo corretto in initrd quindi viene caricato direttamente al boot che è gestito dal bios del raid e quindi funziona sicuro
:roll:

Scaricati e decompressi i driver nella directory [miadir]/hpt controllare il puntatore ai sorgenti del kernel compilato SENZA il driver HPT ma con scsi generic, device mapper, ramdisk ed initrd support abilitati
Quindi
Code:
cd  hpt
make

a questo punto nella directory dovrebbe comparire il modulo hp374.ko :D
provo un :
Code:

insmod.static  hp374.k
dmesg
 

Se tutto va bene posso usare cfdisk sulla device creata (in genere /dev/sda)
e creare le varie partizioni

a questo punto ho creato uno script che mi crea automaticamente l'initrd minimo, per funzionare utilizza una directory [miadir]/data dove vengono memorizzati il file di configurazione ed i moduli.
Code:

mkdir data
cp hpt754.ko data/

a questo punto creo il file data/linuxrc
Code:

#!/bin/sh
/sbin/insmod.static /hpt374.ko
/sbin/insmod.static /nvnet.ko

come si nota inserisco qui anche il modulo nella scheda di rete nvidia per praticità se ci sono altri moduli che uno vuol inserire può farlo qui
infine attivo lo script initrd.sh che creal il file initrd appropriato

Code:

#!/bin/bash
#directory che contiene i moduli ed i file di configurazione
data_dir=./data
#directory corrente
target=./
#directory temporanea
mnt_dir=$target/initrd_dir

#creazione initrd image
echo Creazione initrd image
touch $target/initrd
dd if=/dev/zero of=$target/initrd bs=1024k count=8
losetup /dev/loop0 $target/initrd
mke2fs /dev/loop0
mkdir $mnt_dir
mount /dev/loop0 $mnt_dir

#aggiunta delle directory
echo Creazione directories di initrd
cd $mnt_dir
mkdir {etc,dev,lib,bin,proc,new,cdrom,sbin}
cp -dpR $data_dir/linuxrc $mnt_dir
#touch linuxrc
#chmod +x linuxrc
touch $mnt_dir/etc/mtab
touch $mnt_dir/etc/fstab

#copia dei file necessari per initrd + lirerie -> Ottimizzabile con busybox!!!
echo Creazione file di initrd
#cat
   cp /bin/cat $mnt_dir/bin
#chroot
   cp /bin/chroot $mnt_dir/bin
#gzip
   cp /bin/gzip $mnt_dir/bin   
#mount
   cp /bin/mount $mnt_dir/bin
   #libraries
   cp /lib/libc.so.6 $mnt_dir/lib/
   cp /lib/ld-linux.so.2 $mnt_dir/lib/
#mkdir
        cp /bin/mkdir $mnt_dir/bin
#sh
   cp /bin/sh $mnt_dir/bin
   #libraries
   cp /lib/libdl.so.2 $mnt_dir/lib/
#tar   
   cp /bin/tar $mnt_dir/bin       
   #liraries
   cp /lib/librt.so.1 $mnt_dir/lib/
   cp /lib/libpthread.so.0 $mnt_dir/lib/
#umount
        cp /bin/umount $mnt_dir/bin
#pivot_root
   cp /sbin/pivot_root $mnt_dir/sbin/
#insmod
   cp /sbin/insmod.static $mnt_dir/sbin/

#create device
echo Creazione dispositivi
mknod $mnt_dir/dev/console c 5 1
mknod $mnt_dir/dev/null c 1 3
mknod $mnt_dir/dev/hda b 3 0
mknod $mnt_dir/dev/hdb b 3 64
mknod $mnt_dir/dev/hdc b 22 0
mknod $mnt_dir/dev/hdd b 22 64
mknod $mnt_dir/dev/tty c 4 0
mknod $mnt_dir/dev/loop0 b 7 0
cp -dpR /dev/sd* $mnt_dir/dev

#cd $target/lib
#cp udev-state $target/var/lib
#ln -s /var/lib/udev-state udev-state

cp $data_dir/hpt374.ko $mnt_dir
cp $data_dir/nvnet.ko $mnt_dir
 
cd $target
sync

umount $mnt_dir
rmdir $mnt_dir


a questo punto se tutto va bene si avrà un file di 8192 k chiamato initrd che si può copiare direttamente nella partizione di boot
Code:

mount /boot
cp initrd /boot


Passiamo quindi alla modifica del file / grub/grub.conf
inserendo dopo il kernel:
Code:

initrd (hd0,0)/initrd

attenzione hd0,0 è la mia partizione di boot se qualcuno nbe ha un'altra cambi di conseguenza

ok ci siamo
adesso proviamo il reboot sempre dal disco provvisorio
si noterà che prima della fase init comparirà
Code:
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 8192KiB [1 disk] into ram disk... done.
VFS: Mounted root (ext2 filesystem).
Mounted devfs on /dev
hpt374: module license 'Proprietary' taints kernel.
RocketRAID 154x/1640 SATA Controller driver
Version 2.12, Compiled Dec 12 2004 18:42:31
RAID5 write-back enabled
scsi0 : hpt374
  Vendor: HPT3xx    Model: RAID 5 Array      Rev: 3.00
  Type:   Direct-Access                      ANSI SCSI revision: 00
SCSI device sda: 480243200 512-byte hdwr sectors (245885 MB)
sda: asking for cache data failed
sda: assuming drive cache: write through
 /dev/scsi/host0/bus0/target0/lun0: p1 p2 p3 < p5 p6 >
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 0
ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 5 (level, low) -> IRQ 5

o analogo
questo significa che il sistema ha già i driver corretti e si potranno montare le partizioni del raid
a questo punto ci sono 2 vie
o si reinstalla con chroot la gentoo sul raid :cry: :cry: :roll:
oppure si migra il sistema dal disco temporaneo al nuovo
a tal proposito ho fatto un piccolo ed inefficiente (ma funziona) script
migrate.sh
Code:

cat migrate.sh
#!/bin/bash
#destinazione
target=/dev/sda2
#drive di boot
boot=/dev/sda1

tmpdir=/_migrate_dir

echo Monto il disco
mkdir $tmpdir
mount $target $tmpdir

echo Copio bin
cp -dpRP /bin $tmpdir

echo creo boot
mkdir $tmpdir/boot
mount $boot $tmpdir/boot
mount /boot
cp -dpRP /boot/* $tmpdir/boot/


echo Copio dev
cp -dpRP /dev $tmpdir

echo Copio etc
cp -dpRP /etc $tmpdir

echo Copio home
cp -dpRP /home $tmpdir

echo Copio lib
cp -dpRP /lib $tmpdir

echo Copio mnt
cp -dpRP /mnt $tmpdir

echo Copio opt
cp -dpRP /opt $tmpdir

echo Creo proc
mkdir $tmpdir/proc

echo Copio root
cp -dpRP /root $tmpdir

echo Copio sbin
cp -dpRP /sbin $tmpdir

echo Creo sys
mkdir $tmpdir/sys

echo Copio tmp
cp -dpRP /tmp $tmpdir

echo Copio usr
cp -dpRP /usr $tmpdir

echo Copio var
cp -dpRP /var $tmpdir

aggiorno fstab e grub per quanto riguarda la root nel mio caso sda2

Code:

# For booting GNU/Linux
title  GNU/Linux initrd
root (hd0,0)
kernel (hd0,0)/vmlinuz root=/dev/scsi/host0/bus0/target0/lun0/part2 init=linuxrc
initrd (hd0,0)/initrd


ora non resta che attivare grub
Code:

grub> root (hd1,0)  //hd1 è il drive che viene montato come /boot del raid hw
grub> setup (hd1)  // drive del raid come  identificato da grub


ok testiamo il tutto
1.reboot
2. entro nel bios della scheda madre impostando scsi come prima periferica di boot così che hd1 per grub diventa hd0 e non si deve modificare il file grub.confhd1 diverrà per grup hd0 e non è necessario modificar il file grub.conf
3. ammiro grub che parte dal raid hardware

a questo punto il disco provvisorio non serve + e si può togliere previo spegnimento del computer
:D
salutoni a tutti

TODO
usare l'immagine compressa (lo so ma a me non funziona con gzip -9 initrd) help
Scrivere questo howto in maniera decente

PS credo funzioni su qualunque controller raid che abbia i driver modulo per il kernel quindi biuon divertimento sono anche disposto ad integrazioni e collaborazioni
ciao a tutti
MAtt
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Tue Dec 14, 2004 4:58 pm    Post subject: Re: [howto] raid 5 eide hpt454 grub boot kerne 2.6.9 Reply with quote

Bel tip... peccato che ci vuole l'hardware adatto per provarlo :-P
_________________
Ciao da me!
Back to top
View user's profile Send private message
eaglematt
Tux's lil' helper
Tux's lil' helper


Joined: 27 Jan 2004
Posts: 140

PostPosted: Tue Dec 14, 2004 5:18 pm    Post subject: Reply with quote

Quote:
Inviato: Mar Dic 14, 2004 4:58 pm Oggetto: Re: [howto] raid 5 eide hpt454 grub boot kerne 2.6.9
Bel tip... peccato che ci vuole l'hardware adatto per provarlo

mah in realtà la macchina completa di 3 dischi con un alimentatore enermax
è costata circa 670?
scheda madre con scheda video integrata (è un server)
Quindi si può provare e la differenza si vede 8O 8O 8O
matt
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum