Squeeze, software raid1, GRUB2 hiba

Fórumok

Sziasztok!

Mielőtt frissíteném Lenny szervereim, gondoltam virtuális gépben is leszimulálom a software raid, grub átállást grub2-re.
Elvileg minden szép és jó: Ha a második vinyót lehúzom bootol az elsőről, viszont fordított esetben egyszerűen újraindul még a kernelválasztás előtt.

Ami végképp elkeserít, hogy ugyanezt csinálja egy tiszta squeeze telepítésnél is, telepítővel készített raid tömbökön.
( a telepítés után természetesen a grub-install /dev/sdb -vel telepítettem a második winyóra is a grub-ot)


cat /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}

function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}

insmod raid
insmod mdraid
insmod part_msdos
insmod ext2
set root='(md/0)'
search --no-floppy --fs-uuid --set 916ae869-c569-46e9-98fb-ec20bf1d1241
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod raid
insmod mdraid
insmod part_msdos
insmod ext2
set root='(md/0)'
search --no-floppy --fs-uuid --set 916ae869-c569-46e9-98fb-ec20bf1d1241
set locale_dir=($root)/boot/grub/locale
set lang=hu
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gn u-linux --class gnu --class os {
insmod raid
insmod mdraid
insmod part_msdos
insmod ext2
set root='(md/0)'
search --no-floppy --fs-uuid --set 916ae869-c569-46e9-98fb-ec20bf1d1241
echo 'Loading Linux 2.6.32-5-686 ...'
linux /boot/vmlinuz-2.6.32-5-686 root=UUID=916ae869-c569-46e9-98fb-ec 20bf1d1241 ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686 (recovery mode)' --class d ebian --class gnu-linux --class gnu --class os {
insmod raid
insmod mdraid
insmod part_msdos
insmod ext2
set root='(md/0)'
search --no-floppy --fs-uuid --set 916ae869-c569-46e9-98fb-ec20bf1d1241
echo 'Loading Linux 2.6.32-5-686 ...'
linux /boot/vmlinuz-2.6.32-5-686 root=UUID=916ae869-c569-46e9-98fb-ec 20bf1d1241 ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-5-686
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

------------
cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_LINUX_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
----------------

cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
ARRAY /dev/md/0 metadata=1.2 UUID=8222f971:f774adbc:27bc360b:a4ac29ef name=squeeze:0
ARRAY /dev/md/1 metadata=1.2 UUID=132f28af:99ce7b69:0228c1c4:bcac7a1d name=squeeze:1

# This file was auto-generated on Mon, 14 Feb 2011 15:56:09 +0100
# by mkconf 3.1.4-1+8efb9d1

--------------

blkid
/dev/sda5: UUID="515f8bd7-70b0-464d-b724-57276b59ce89" TYPE="swap"
/dev/sda1: UUID="8222f971-f774-adbc-27bc-360ba4ac29ef" LABEL="squeeze:0" TYPE="linux_raid_member"
/dev/sda6: UUID="132f28af-99ce-7b69-0228-c1c4bcac7a1d" LABEL="squeeze:1" TYPE="linux_raid_member"
/dev/md0: UUID="916ae869-c569-46e9-98fb-ec20bf1d1241" TYPE="ext3"
/dev/md1: UUID="4b5418b7-b85a-4742-92e1-6c1eaa1e1a25" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb1: UUID="8222f971-f774-adbc-27bc-360ba4ac29ef" LABEL="squeeze:0" TYPE="linux_raid_member"
/dev/sdb5: UUID="5ec83be8-6986-4684-8aa6-5eb580bb7f38" TYPE="swap"
/dev/sdb6: UUID="132f28af-99ce-7b69-0228-c1c4bcac7a1d" LABEL="squeeze:1" TYPE="linux_raid_member"

Hozzászólások

mdadm.conf>
ARRAY /dev/md/0 metadata=1.2 UUID=8222f971:f774adbc:27bc360b:a4ac29ef name=squeeze:0

grub>
root=UUID=916ae869-c569-46e9-98fb-ec 20bf1d1241 ro quiet

blkid>
/dev/md0: UUID="916ae869-c569-46e9-98fb-ec20bf1d1241" TYPE="ext3"

1. körben ennek kellene utána nézni.
2. "a telepítés után természetesen a grub-install /dev/sdb -vel telepítettem" >
update-grub
update-initramfs -u -k 2.6.32-5-xxx is volt?

szerk>
fdisk -l /dev/sdb ?

-Az mdadm.conf -ba beirtam a tömb UUID-jét, helyzet változatlan :(

-Grub-ba uuid helyett írtam simán md0-t, szintúgy resetel a kernelválasztás előtt :(

-update-grub volt

-update-initramfs most volt, de semmi változás :(


fdisk -l /dev/sdb

/dev/sdb lemez: 5368 MB, 5368709120) bájt
255 fej, 63 szektor, 652 cilinder
Egység: cilinderek 16065 * 512 = 8225280 bájt
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Lemezazonosító: 0x0007c3cb

Eszköz Indítás Eleje Vége Blokkok Az Rendszer
/dev/sdb1 * 1 414 3319808 fd Linux raid automatikus felismeréssel
A(z) 1. partíció nem cilinderhatáron végződik.
/dev/sdb2 414 653 1920001 5 Kiterjesztett
A(z) 2. partíció nem cilinderhatáron végződik.
/dev/sdb5 414 476 498688 82 Linux lapozó / Solaris
/dev/sdb6 476 653 1420288 fd Linux raid automatikus felismeréssel

Kicsit még ráguglizam más módon, a hiba teljesen ugyanez: http://ubuntuforums.org/showthread.php?t=1661341
Lehet hogy ez egy Grub bug?

Hát ezt nem tudom, inkább az install rontja el.

Két lehetséges út:
1. bent hagyod csak az sdb-t, így csak erre teszed fel a grub-ot
(update-grub fejbevágja a grub.cfg-ot)
2. telepítő cd, rescue mód, nyelv, billenő beállítás után
vissza a főmenübe, enter rescue mód, installed enviroment, no root device (valami ilyesmi), kapsz egy shell-t:

elindítod a tömböt(mdadm --create /dev/md0 -l1 -n2 missing /dev/sdb1 )
(lehet, hogy kell ez is :mdadm --add /dev/md0 /dev/sda1)
mount /dev/md0 /mnt
mdadm --examine --scan /dev/md0 >> /mnt/etc/mdadm/mdadm.conf
mount -o bind /proc /mnt/md0/proc
chroot /mnt/md0
grub-install /dev/sda
grub-install /dev/sdb
update-grub
update-initramfs -u -k 2.6.36-5-686(vagy xxx >szerk uname -r megmondja )
exit
umount /mnt
exit, reboot
itt el kellene indulni a raid-es debiannak.
shutdown, sda-t kiveszed, restart
?

Köszi Formind, később megpróbálom az általad írtakat, bár nagyon túlbonyolítani nem akarom a dolgokat.

Az 1-es út sajnos nem járható, mert sdb-ről ugye nem bootol. grub shell sincs, csak reset.

Nem hiszem amúgy, hogy az install rontaná el, mert lenny upgrédről is teljesen ugyanez a helyzet, valamint ha installnál csak egy vinyóra telepítem, és később csinálom meg a tömböket szintén ugyanígy viselkedik.
Gyanakodtam már a VMWare-re is, de egy normál vasra telepítve is ugyanez a helyzet.

Lehet a grub.cfg-be ezzel a sorral kellene kezdeni valamit?

search --no-floppy --fs-uuid --set 916ae869-c569-46e9-98fb-ec20bf1d1241

vagy a /boot/grub/devices.map ?

Még egy kicsit azért utánaolvasok a grub2-nek, hátha.....

...vagy nem kellene lehuzigálnom a lemezeket ellenőrzéskép, és boldog tudatlanság :)

kérdés:

"Ami végképp elkeserít, hogy ugyanezt csinálja egy tiszta squeeze telepítésnél is, telepítővel készített raid tömbökön."

Ez a most kiadott telepítő(6.0.0)?

Tegnap este összedobtam egy kis configot, 2x18Gb scsi-val,
a raid összejön, viszont az sdb nem bootázik :(
A telepítő csak az sda-ra teszi fel rendesen az MBR-t,
tehát az sdb-re utólag, rescue módban rá kell mozgatni.
Ekkor kaptam egy initramfs prompot, tehát már elindulna -
tovább nem játszottam vele, kellett volna még a grub
edit(rootdelay=10 mint kernel paraméter, vagy valami)
(Squeeze 6.0.0 netinst cd)

Tehát a probléma globális :(

Észrevettem még egy érdekességet. Valószínüleg az előző telepítésből megmaradt sdb bootrekordja, és abban a grub. Ha tiszta telepítésnél indítom újra a renszert megvan a grub promt (error: no such device: elöző telepitett rendszer uuid-je)

Amint installálom sdb-re is a grubot (igaz éles rendszer alól nem rescue módban, grub-install /dev/sdb, update-grub) kezdi a rebootolgatást és még promt sincs..

Szerintem még MBR szinten akadhat el a dolog sdb-nél.

Ma is eljátszottam egy kicsit a problémával, úgy néz ki taknyolás nélkül nem igazán lehet megoldani, de legalább megoldás van.

Rescue módban grub újrainstallálás menüpont felejtős, mert semmi hatása nincs.

Ami járható út sdb-ről a rendszer elindítására, ha valakinek sürgősen kellene:

-telepitő cd, rescue mód
-Raid tömb összerakása, automata
-kiválasztjuk a root fájlrendszer tömbjét
-Héj futtatása itt: /dev/tömb
-grub-install /dev/sda
-update-grub

Így a rendszer bootolható akármelyik hddről, valamint a tömbről is.

Lenny-squeeze frissítésnél még nem tudom hogy hatásos e a fenti megoldás.

Azért jó lenne találni valami elegánsabb megoldást is, talán egy próbát még megér sda MBR-jét 1:1 -be átírni sdb-re...

de. de miután kiveszed sda-t, sdb-ből sda lesz :)

a boot sector átmásolása amúgy nem járt sikerrel
( dd if=/dev/sda of=/dev/sdb bs=512 count=1 )

így már gőzöm sincs mi lehet a baj.. A fenti mókingolás után a grub.cfg teljesen ugyan olyan mint a nem üzemelő verzióba.
Hova kaparászhat még bele a grub?

Én is ezzel a problémával küszködök már egy jó ideje, akárhogy frissítem a Grub-ot vagy próbálom pakolgatni egyik vigyoról a másikra semmi, már végig böngésztem egy jó pár leírást ezzel kapcsolatban de nem lettem okosabb. A végén amikor lecsatolom a 1.vinyót behal a Grub és újraindul a rendszer már ott tartok hogy beszerzek egy hw kártyát mert nem jutok előre. A korábbi Grub-bal nem volt semmi gond de a 2-es sajna kifog rajtam, tudna vki segíteni egy használható leírással ezzel kapcsolatban, nagyon köszönöm.

mindezt telepítőlemez boot után, rescue mód, héj indítása az installált környezetben/
//mdadm detail scan ha kell
mdadm --add /dev/mdx /dev/sdb

mount /dev/md0 /mnt

mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
update-grub
grub-install /dev/sda
grub-install /dev/sdb

exit
umount a fentiek fordított sorrendben
exit
restart
--
vagy a fenti, de ahhoz az egyik még grub szempontból nem működő hdd-t kell benthagynod.

Srácok!

2.6.32-5 kernellel szerintetek miért van az, hogy a raid1-et nem rántja fel automatikusan az initrd. Korábbi 2.6.27-el király, ez a konfig működik.
Pontosabban az új kernel initr-je arra panaszkodik, hogy nincs semmi az mdadm.conf-ban, pedig van. Bootnál megáll, majd busybox fogad, de ha manuálisan indítom a tömböt a busyboxban majd ctrl+d akkor bootol a rendszer.

Megjegyzem a 2.6.27-el simán megy minden. Próbáltam módosítani a /etc/mdadm/mdadm.conf-ot többször is, majd újrageneráltatni az mdadm --detail --scan -el, majd update-initrd -k 2.6.32-5 -u (ezt fejből mert, lehet most elírtam), de továbbra is a fenti hiba van vagyis azt mondja nincs tömb az mdadm.conf-ban.

Ja igen, a raid az raid1 és a root is ezen van.

Nem vágom mit hagyhatok ki vagy min siklok át, jó lenne ötlet. Valaki?

(Nem akartam új témát nyitni, a "Squeeze, software raid1" miatt tettem ide)

Hi

En is ilyen gonddal kuzdok, illetve szerintem ugyanez a gond.
Szoval regen a gyari debian kernellel siman bootolt a vas, de azert volt egy grsec es forgatott kernelem is.
Aztan az upgrade alatt (a doksinak megfeleloen) a squeeze kernelre valtani (BIGMEM) de azzal sehogyse bootolt be a root, elindult, initramfs is betoltodott, aztan kiirta hogy nem talalja a rootfs-t es kaptam egy promptot.
Promptban megneztem megvannak a scsi lemezek, cat/proc/mdstat kiirja h raid1, viszont a raid kotetek nincsenek meg.
Probaltam a varakozasi idot is novelni, az se segitett.
Megneztem az initramfs ben levo mdadm.conf ot is bennevannak a kotetek, sot ha az initramfs ben kapott promptnal kerek egy mdadm --examine --scan akkor latszik minden raidkotet, csak eppen nem "huzza fel oket"

Igyhat forgattam ujra sajat kernelt, azzal megy minden szepen.

(viszont jo lenne inkabb debian kernel, mert xen is kene...)

Minden otletet elore is koszonok.

Reggel megnézem, késô van már elfáradtam. Az ötlet jogos, látnom kéne honnan szedi a konfigot.

Hát sajnos ezzel sem oldodott meg a problema, megcsinaltam mindent amit ott irnak.

Grub2 egyebkent gond nelkul elindul, es a forgatott kernel amivel mukodik azt is grub2 bootolja be.
A XEN-es squeeze kernel viszont elkezd toltodni, aztan kiirja hogy waiting boot... aztan kiirja hogy nem talalja es kapok egy korlatozott shellt, ott megneztem, leteznek a discec, csak a mdadm koteteteket nem huzza fel.(cat /proc/mdstat kiirja h raid1 , szoval raid1 van, csak kotetek nincsenek...)

Megneztem az initrd ben az mdadm configban benne vannak rendesen az mdadm kotetek leirasai (kitomoritettem), szoval foggalmam nincs miert nem epiti fel oket.

Kiprobaltam a rescue moddal is, ott latszik szepen, hogy miutan kiirja hogy waitin boot... akkor utana megtalalja a scsi lemezeket, de aztan annyi, mdadm nem epiti raid tomboket ossze.
A forgatott kernellel az also grub configgal mukodik szerencsere...

Xen-es squeeze bejegyzés

### BEGIN /etc/grub.d/20_linux_xen ###
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-686 and XEN 4.0-i386' --class debian class --gnu-linux --class gnu --class os --class xen {
insmod raid
insmod mdraid
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(md0)'
search --no-floppy --fs-uuid --set c486c57f-49ef-4047-8dcb-a67ed678004a
echo 'Loading Linux 2.6.32-5-xen-686 ...'
multiboot /boot/xen-4.0-i386.gz placeholder..
module /boot/vmlinuz-2.6.32-5-xen-686 placeholder root=UUID=c486c57f-49ef-4047-8dcb-a67ed678004a ro quiet
echo 'Loading initial ramdisk ...'
module /boot/initrd.img-2.6.32-5-xen-686
}

Forgatott sajat kernel configja :

### BEGIN /etc/grub.d/21_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.32.43-vajtsz' --class debian --class gnu-linux --class gnu --class os {
insmod raid
insmod mdraid
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(md0)'
search --no-floppy --fs-uuid --set c486c57f-49ef-4047-8dcb-a67ed678004a
echo 'Loading Linux 2.6.32.43-vajtsz ...'
linux /boot/vmlinuz-2.6.32.43-vajtsz root=UUID=c486c57f-49ef-4047-8dcb-a67ed678004a ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32.43-vajtsz
}

Elore is koszonok barmilyen otletet...

tovabbra sem tudom miert nem bootol be az a kernel, de egy kis grub.conf modositassal mukodik :


... root=/dev/md0 md=0,/dev/sda1,/dev/sdb1 rootdelay=20

Rootdelay opciot korabban is probaltam akkor azzal magaban nem mukodott, bar nem tudom mennyi idot irtam oda, szoval nemtudom melyik opcio segitett.

Azert nem tetszik ez a megoldas, mert ezt a /boot/grub/grub.cfg fajlt a update-grub nyakonvagja minden egyes alkalommal amikor lefut, es az /etc/grub.d/... ala nemtudom hogylehetne belevarazsolni.