raid-1 boot with raid-5 system

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Im having trouble booting my raid-1 array.
This is what I want to do:
First I want to boot the system on a small raid-1 array (2 * 80M) to get
boot redundancy. Then I want to mount a raid-5 array (3 * 30G) on "/".
I'll have 3 Linux swaps, one on each disk.

Here are the disks after partition.

#### /dev/hdb ##########################################################

Disk /dev/hdb: 30.7 GB, 30750031872 bytes
255 heads, 63 sectors/track, 3738 cylinders, total 60058656 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdb1   *        63    160649     80293+  fd  Linux raid autodetect
/dev/hdb2        160650  60050969  29945160    5  Extended
/dev/hdb5        160713   1156679    497983+  82  Linux swap
/dev/hdb6   *   1156743  60050969  29447113+  fd  Linux raid autodetect
########################################################################

#### /dev/hdc ##########################################################

Disk /dev/hdc: 30.7 GB, 30750031872 bytes
16 heads, 63 sectors/track, 59582 cylinders, total 60058656 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdc1            63    156239     78088+  fd  Linux raid autodetect
/dev/hdc2        156240  60058655  29951208    5  Extended
/dev/hdc5        156303   1156175    499936+  82  Linux swap
/dev/hdc6   *   1156239  60058655  29451208+  fd  Linux raid autodetect
########################################################################

#### /dev/hdd ##########################################################

Disk /dev/hdd: 30.7 GB, 30750031872 bytes
16 heads, 63 sectors/track, 59582 cylinders, total 60058656 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdd1            63    999935    499936+  82  Linux swap
/dev/hdd2        999936  60058655  29529360    5  Extended
/dev/hdd5   *    999999  60058655  29529328+  fd  Linux raid autodetect
########################################################################


I installed the base system (debian) on /dev/hdb6 with all the required
tools (raidtools, ...).
Then I edited the raidtab file like this:

#### /etc/raidtab ###############
raiddev /dev/md0
raid-level 5
nr-raid-disks 3
nr-spare-disks 0
persistent-superblock 1
parity-algorithm left-symmetric
chunk-size 32
device /dev/hdc6
raid-disk 1
device /dev/hdd5
raid-disk 2
device /dev/hdb6
failed-disk 0

raiddev /dev/md1
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
persistent-superblock 1
chunk-size 32
device /dev/hdc1
raid-disk 0
device /dev/hdb1
raid-disk 1
#################################

In /dev/md0 I have /dev/hdb6 as a failed-disk that partition will be in
the raid-5 later on.
Then I created the arrays with:
mkraid /dev/md0
mkraid /dev/md1

All went well and when I cat /proc/mdstat I get:

#### cat /proc/mdstat #############################################
Personalities : [raid1] [raid5] 
read_ahead 1024 sectors
md1 : active raid1 hdb1[1] hdc1[0]
      78016 blocks [2/2] [UU]
      
md0 : active raid5 hdd5[1] hdc6[0]
      58902272 blocks level 5, 32k chunk, algorithm 2 [3/2] [_UU]
      
unused devices: <none>
###################################################################

After that I stopped the arrays and made filesystems on them like this:

mkreiserfs /dev/md0
mkreiserfs /dev/md1

Then I copied all the /boot/* files onto /dev/md1
and the rest of the filesystem onto /dev/md0.

After all this I had a partition table like this:
#### df -T #######################################################
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/hdb6 reiserfs    29446208    918148  28528060   4% /
/dev/md0  reiserfs    58900468    880820  58019648   2% /raid
/dev/md1  reiserfs       78008     40376     37632  52% /raid/boot
###################################################################

then I chroot'ed into /raid and modified /etc/fstab like this 

#### /etc/fstab  (/raid/etc/fstab) ###########################################
#<file system> <mount point>   <type>  <options>               <dump>  <pass>
/dev/md0        /               reiserfs        defaults        1       1
/dev/md1        /boot           reiserfs        defaults        1       1
##############################################################################

And now I'am stucked here with lilo. I cant get it booting my small raid-1
array.
I dont know if i have to chroot into /raid and run lilo from there or if
it works
the same if I dont chroot.
I've read alot of howtos and mailinglists and they all differ. This is how
I've
done it now:
I have 2 lilo files (lilo.hdb.conf and lilo.hdc.conf) and they look like this:

#### /etc/lilo.hdb.conf  (chrooted in /raid) ####
lba32
disk=/dev/md0
bios=0x80
sectors=63
heads=16
cylinders=3738
partition=/dev/md1
start=63
boot=/dev/hdb
root=/dev/md0
install=/boot/boot-menu.b
map=/boot/map
initrd=/boot/initrd-raid.img
delay=100
prompt
timeout=100
default=Linux
image=/vmlinuz
        label=Linux
        read-only
image=/vmlinuz-raid
        label=Linux-Raid
        read-only
image=/vmlinuz-raidNEW
        label=Linux-RaidNEW
        read-only
###################################################

#### /etc/lilo.hdc.conf ###########################
Its exactly like lilo.hdb.conf the only diffrence is
cylinders=59582
boot=/dev/hdc
###################################################

As you can se I've also made a new initrd image.
My /etc/mkinitrd/files contains:
#### /etc/mkinitrd/files ########################## 
/bin
/bin/bash
/bin/echo
/sbin/raidstart
/bin/mount
/bin/umount
/bin/cat
/bin/sh
/dev/tty1
/dev/md0
/dev/md1
/dev/md2
/dev/md3
/dev/console
/dev/hda
/dev/hda1
/dev/hda2
/dev/hda3
/dev/hdc
/dev/hdc1
/dev/hdc2
/dev/hdc3
/dev/hdd
/dev/hdd1
/dev/hdd2
/dev/hdd3
/dev/initrd
/dev/ram0
/dev/ram1
/dev/ram2
/dev/ram3
/dev/ram4
/dev/ram5
/dev/ram6
/dev/ram7
/etc/raidtab
/etc/fstab
/lib/ld-2.3.1.so
/lib/ld-linux.so.2
/lib/libc-2.3.1.so
/lib/libc.so.6
/linuxrc
/proc
########################################

and /linuxrc looks like this (im not really sure 
about how this file works :/ ):

#### /linuxrc ##########################
# mount the proc file system
/bin/mount /proc

# autostart /boot partition and raid0
/sbin/raidstart /dev/md1

# tell the console what's happening
/bin/cat /proc/mdstat

# Everything is fine, let the kernel mount /dev/md2
# tell the kernel to switch to /dev/md2 as the /root device
# The 0x900 value is the device number calculated by:
#  256*major_device_number + minor_device number
echo "/dev/md0 mounted on root"
echo 0x902>/proc/sys/kernel/real-root-dev

# umount /proc to deallocate initrd device ram space
/bin/umount /proc
exit
##########################################

I did it like this 'mkinitrd -o /boot/initrd-raid.img'.

And now I'll write the two lilo's into the bootrecords like this:

#### lilo -v -C /etc/lilo.hdb.conf #####################################

LILO version 22.5.6.1, Copyright (C) 1992-1998 Werner Almesberger
Development beyond version 21 Copyright (C) 1999-2003 John Coffman
Released 03-Jul-2003, and compiled at 23:47:54 on Jul 17 2003
Compiled for Debian GNU/Linux.

Reading boot sector from /dev/hdb
Warning: /dev/hdb is not on the first disk
Using MENU secondary loader
Calling map_insert_data
Warning: The boot sector and map file are on different disks.

Boot image: /vmlinuz -> boot/vmlinuz-2.4.18-bf2.4
Mapping RAM disk /boot/initrd-raid.img
Added Linux *

Boot image: /vmlinuz-raid -> boot/vmlinuz-2.4.21-raid
Mapping RAM disk /boot/initrd-raid.img
Added Linux-Raid

Boot image: /vmlinuz-raidNEW -> /boot/vmlinuz-2.4.21NEW
Mapping RAM disk /boot/initrd-raid.img
Added Linux-RaidNEW

Skipping /vmlinuz.old
Writing boot sector.
/boot/boot.0340 exists - no boot sector backup copy made.
########################################################################

and 

#### lilo -v -C /etc/lilo.hdc.conf #####################################

LILO version 22.5.6.1, Copyright (C) 1992-1998 Werner Almesberger
Development beyond version 21 Copyright (C) 1999-2003 John Coffman
Released 03-Jul-2003, and compiled at 23:47:54 on Jul 17 2003
Compiled for Debian GNU/Linux.

Reading boot sector from /dev/hdc
Warning: /dev/hdc is not on the first disk
Using MENU secondary loader
Calling map_insert_data

Boot image: /vmlinuz -> boot/vmlinuz-2.4.18-bf2.4
Mapping RAM disk /boot/initrd-raid.img
Added Linux *

Boot image: /vmlinuz-raid -> boot/vmlinuz-2.4.21-raid
Mapping RAM disk /boot/initrd-raid.img
Added Linux-Raid

Boot image: /vmlinuz-raidNEW -> /boot/vmlinuz-2.4.21NEW
Mapping RAM disk /boot/initrd-raid.img
Added Linux-RaidNEW

Skipping /vmlinuz.old
Writing boot sector.
/boot/boot.1600 exists - no boot sector backup copy made.
#########################################################################

I dont know if the warnings are critical or not.

And now I'll reboot the system.

And when I boot it up with my new raid improved kernel it finds and sets 
up raid-1 and after that I get this:

#### dmesg ##############################################################
RAMDISK: Couldn't find valid RAM disk image starting at 0.
Freeing initrd memory: 1852k freed
raid5: switching cache buffer size, 4096 -> 1024
md: swapper(pid 1) used obsolete MD ioctl, upgrade your software to use
new ictls.
hdd: dma_initr: status=0x51 { DriveReady SeekComplete Error }
hdd: dma_initr: error=0x84 { DriveStatusError BadCRC }
hdd: dma_initr: status=0x51 { DriveReady SeekComplete Error }
hdd: dma_initr: error=0x84 { DriveStatusError BadCRC }
hdd: dma_initr: status=0x51 { DriveReady SeekComplete Error }
hdd: dma_initr: error=0x84 { DriveStatusError BadCRC }
hdd: dma_initr: status=0x51 { DriveReady SeekComplete Error }
hdd: dma_initr: error=0x84 { DriveStatusError BadCRC }
hdc: DMA disable
#########################################################################

And here i am stucked. I really dont know whats wrong here. Is it that it
doesnt find the RAMDISK, or is it something else in my configuration?

Thanks for the help!

Tobias Carlsson


-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux