Sie sind nicht angemeldet.

[gelöst] Boot von RAID 5

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

23.10.2013, 19:55

Boot von RAID 5

Hi,

Ich möchte gerne von RAID 5 booten aktuell habe ich folgende Konfig:

Quellcode

1
2
3
4
5
6
7
8
9
Model: ATA Hitachi HDS5C303 (scsi)
Disk /dev/sdc: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start  End     Size    File system  Name  Flags
 2      249MB  250MB   1049kB               grub  bios_grub
 1      250MB  3001GB  3000GB                     raid


und

Quellcode

1
2
3
4
5
6
7
8
9
Model: Linux Software RAID Array (md)
Disk /dev/md0: 6000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      17.4kB  30.0GB  30.0GB  ext4
 2      30.0GB  6000GB  5970GB  ext4


Die 30Gb für / und die 6 TB für Daten

und interessant noch:

Quellcode

1
2
3
4
 # ls -l /dev/md*
brw-rw---- 1 root disk   9, 0 Oct 23 19:51 /dev/md0
brw-rw---- 1 root disk 259, 0 Oct 23 19:17 /dev/md0p1
brw-rw---- 1 root disk 259, 1 Oct 23 19:17 /dev/md0p2


bei meinen anderen raids war das anders.

Ich habe Grub2 installiert und in /etc/default/grub GRUB_DEVICE=/dev/md0p1 gesetzt.

Allerdings bekomm ich ne Kernel Panic beim Booten. Ich vermute der Kernel kann nicht direkt von RAID 5 booten?

Brauch ich eine initramfs um das zu realisieren? Wenn ja hat jemand ne gute Anleitung dazu?

Ich habe auch extra auf den platten 250Mb frei gelassen um im zweifelsfall /boot direkt auf die platte zu legen, das sollte ja in jedem falle funktionieren oder?


Danke schonmal :)
Thorus

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Thorus« (01.11.2013, 10:26)


2

24.10.2013, 08:22

Sooo,

hier noch meine grub2-konfig:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-09ce1adf-d051-4619-b3d2-a192e249bc5f' {
	load_video
	insmod gzio
	insmod part_gpt
	insmod ext2
	insmod mdraid1x
	set root='hd0,gpt3'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 --hint='hd0,gpt3'  1b2ec002-a783-45ed-88bf-845f1365b494
	else
	  search --no-floppy --fs-uuid --set=root 1b2ec002-a783-45ed-88bf-845f1365b494
	fi
	echo	'Loading Linux 3.10.7-r1 ...'
	linux	/kernel-3.10.7-r1 root=/dev/md0p1 ro domdadm 
	initrd /initrd
}


dadran hab ich erstmal ein paar manuelle anpassungen gemacht.

1. domdadm als kerneloption mitangegeben
2. die initrd hinzugefügt
3. insmod mdraid1x

später muss ich natürlich noch machen dass er das per grub2-mkconfig macht


Die Initrd hab ich folgendermaßen erstellt:

genkernel installiert, dann genkernel --install --no-ramdisk-modules --mdadm initramfs, und diese dann umbenannt erstmal zur einfachheit.

Jetzt hab ich folgendes problem:

Wenn ich boote, kommt die initrd mit dem fehler could not rootfs please give valid rootfs. Wenn ich dort direkt /dev/md0p1 angeben bekomme ich wieder denselben fehler, gebe ich allerdings /dev/md0 an, kommt wieder der fehler und dann /dev/md0p1 funktioniert es.


Irgendjemand ne Idee dazu?

3

01.11.2013, 10:25

OK habs hinbekommen, zwar nicht auf die feine Englische Art, aber offensichtlich ist das so nicht gedacht und es gibt deshalb keinen "way of choice"

Ich hab in der /usr/share/genkernel/defaults/linuxrc rumgeschmiert. Das ist das Bashskript welches die initrd beim booten ausführt in welchem auch der mount befehl ausgefuehrt wird:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Try to mount the device as ${NEW_ROOT}
                if [ "${REAL_ROOT}" = '/dev/nfs' ]; then
                        findnfsmount
                else
                        # If $REAL_ROOT is a symlink
                        # Resolve it like util-linux mount does
                        [ -L ${REAL_ROOT} ] && REAL_ROOT=`readlink ${REAL_ROOT}`
                        # mount ro so fsck doesn't barf later
                        if [ "${REAL_ROOTFLAGS}" = '' ]; then
                                good_msg "Using mount -t ${ROOTFSTYPE} -o ${MOUNT_STATE}"
                                #mount -t ${ROOTFSTYPE} -o ${MOUNT_STATE} ${REAL_ROOT} ${NEW_ROOT}
                                #Next 3 Lines are from me and are not standard! and line above has to be commented in
                                mount -t ext4 -o ro /dev/md0 ${NEW_ROOT}
                                mount -t ext4 -o ro /dev/md0p1 ${NEW_ROOT}
                                REAL_ROOT="/dev/md0p1"
                        else
                                good_msg "Using mount -t ${ROOTFSTYPE} -o ${MOUNT_STATE},${REAL_ROOTFLAGS}"
                                mount -t ${ROOTFSTYPE} -o ${MOUNT_STATE},${REAL_ROOTFLAGS} ${REAL_ROOT} ${NEW_ROOT}
                        fi
                fi


Dadurch steht da jetzt halt hart kodiert /dev/md0 drin und dann /dev/md0p1. Aber es funktioniert dass er ohne eingriffe korrekt bootet :)

Sollte doch noch jemand den richtigen Weg dafuer kennen, immer her damit.

Ähnliche Themen