Portál AbcLinuxu, 12. května 2025 12:45
Ahoj, mam linux 80GB HDD.
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 9632 77264617+ 83 Linux
/dev/hda3 9633 9729 779152+ 82 Linux swap / Solaris
Do stroje jsem pridal dalsi 80GB disk a nyni bych rad vytvoril mirror, je to mozne aniz bych musel stroj reinstalovat?
md0 [hda1, hdb1]
md1 [hda2, hdb2]
md2 [hda3, hdb3]
Asi bych na tom hdb, udelal pomoci sfdisku stejne rozlozeni, pote bych to nejak pomoci fdisku oznacil jako raid tabulky, mno pak pres mdadm vytvoril md0,1,2 pote nejak preklopit data a nabootovovat z hdb disku, kdyz se to podari, sfdisk ha hda a pak jen pridal druhy disk do pole a ono se to samo rebuildne? Mam strach, ze to po prvni fazy z toho hdb nenabootuje.
Dekuju vsem za navody, ale nejak jsem to asi zvoral.
Unable to access resume device (/dev/sda3) -> zajimave ja jsem pole skladam z hda a hdc disku
mount: Could not find filesystem '/dev/root' -> a pak se to cele sesype az ke kernel panic
setuproot: moving /dev failed: no such file or ...
setuproot: /proc : no such file or...
setuproot: /proc : no such file or...
setuproot:mount failed: no such file or ...
Kernel panic - not syncing: Attemted to kill init!
---
Chjo a vypadalo to tak nadejne...
No a jak se tváří kernel při bootu? Najde vůbec nějaký RAID? Řekne že našel zařízení md0 md1 md2 ? Zmínka o "resume device" mi přijde jako skutečně pikoška - jako že suspend/resume? Snad se snažíme bootovat od nuly, ne On kernel tuším má v sobě zakompilovaný nějaký defaultní root device, na který se upne ve chvíli, kdy nic rozumnějšího nedostane na command lajně (a /dev/md1 možná nedokázal převést na major/minor - viz níže poznámka o ovladačích MD RAIDu).
Taky přihodím jeden odkaz:
http://wiki.clug.org.za/wiki/RAID-1_in_a_hurry_with_grub_and_mdadm
Je tam konkrétně zmíněn velmi užitečný argument mdadm:
-e 0.90
Autodetekci při bootu umí jenom starý superblock verze 0.90. Novější verze (1.0 a výš) už autodetekci kernel-space ovladačem nepodporují a vyžadují explicitní start RAIDových zařízení skriptem z initrd. Konkrétně s tím býval problém tuším na některých verzích Debianu, kde byl už nový mdadm a nový ovladač v kernelu, ale starý initrd, který ten explicitní start neprováděl. Některé prameny na webu sice tvrdí, že superblock 0.90 je pro mdadm default, ale možná ty prameny nejsou aktuální Čili podle mého není na škodu říct při vytváření pole jasně, že chci autodetekci ovladačem, tj. superblock v0.90.
Druhá věc je, zda náhodou nepotřebujete regenerovat initrd už kvůli ovladači. Máte ty RAIDové ovladače monoliticky v kernelu, nebo jako moduly? Pokud jako moduly, tak je musíte nacpat do initrd Já osobně jsem ultrakonzervativec obrostlý mechem, takže když jsem před týdnem na nějakém pět let starém Debianu zprovozňoval MD RAID, tak jsem si ubalil svůj vlastní kernel, který má všechny ovladače monoliticky a na initrd úplně kašle (boot se obejde bez něj). A protože jsem náhodou našel hned to správné howto, tak mám hned na první pokus i superbloky ve verzi 0.90.
Fakt je, že jsem to stěhování na mirror provedl offline, po bootu z údržbářského CDčka, vytvořil jsem si v klídku mirror ze dvou nových disků (taky asi 4 oddíly), přimountoval jsem starý i nový strom mountpointů, data jsem překopíroval (už vím co má smysl kopírovat a jak a na co se vykašlat), dokonce i úprava fstabu a instalace Grubu klapla na první pokus... lebeda Nejvíc času mi na tom zabralo studium dokumentace mdadm a grubu.
Představte si, že máte starý a nový strom pod /mnt/source a /mnt/target.
cd /mnt/source
tar cvzf dev.tgz ./dev/
cd /mnt/target
tar xvzf /mnt/source/dev.tgz
cd /mnt/source
cp -dpR etc bin sbin var tmp usr home /mnt/target/
Některé distribuce obsahují pajpu /dev/log, která nejde zkopírovat ani targzipem - nejlepší je, vytvořit ji znovu rukama. A pak taky v mém případě jsem konvertoval z Lila na Grub, takže jsem z původního /bootu nenechal prakticky kámen na kameni.
Jo a Grub 0.97 jsem si nakonec stáhl čerstvý ze svn, protože to co bylo na CDčku (nominálně tatáž verze, ale build někdy z 2006) ještě neuměla pracovat s MD RAIDy. Ona ta podpora pro MD RAIDy je i tak poměrně spartská, vlastně je to jenom hack v podpoře pro EXT2, ale díky bohu za něj
Vlastně jsem si dopřál takový mezikrok pro dobrou náladu: po vytvoření MD zařízení, vytvoření FS na oddílech a vytvoření prázného stromu mountpointů, jsem do nového /boot/ nahrál holý monolitický binár kernelu, pro Grub stage1 stage1.5 a stage2, a šplouchnul jsem Grub do MBR. A pak jsem bootnul. Grubu jsem řekl rukama, kde je kernel, a bootnul jsem ho. A dost jsem pookřál, když na první pokus našel všecky moje MD oddíly :-) A vůbec mi nevadilo, že pak hodil panic, protože jsem mu nedal žádný root= Pak jsem to opět z CDčka na jeden zátah celé dodělal - viz výše.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.