Kernel panic - Cannot open root device 801 or unknown-block

Založil bdmin, 09. 02. 2022, 13:10:37

Předchozí téma - Další téma

bdmin

Zdravím,
mám tento problém na debian serveru, viz screen:


Jedná se o nějaký Kernel panic, a co jsem vyčetl, jde o bootování. Situace nastala v momentě, kdy jsem fyzický server zkopíroval do Proxmoxu jako virtuál skrze CloneZillu.

Clonezilla mi fungovala vždy, ale jen při kopírování jednoho disku se systémem. Teď to byly 4 disky, ale na fyzickém to byl jeden rozdělený na 4 partitiony.

Tak nevím, jestli je to tím nebo musím změnít nějaké nastavení v Proxmoxu nebo Clonezille při samotném kopírování (jejich support forum apod nepomohlo).

Disky se kopírovaly ve správném pořadí, ale Proxmox je ukazuje sice ve správném pořadí, ale s jinými jmény, např sda místo sdc apod - jen u dvou disků. Což je zajímavé (dá se to v Proxmoxu přejmenovat nějak nebo pořadí dát natvrdo do toho?).

Po vyskočení této kernel panic chyby nemůžu nic, takže jen jedině vyrtuál vypnout. Každá rada na vyřešení tohoto rébusu by se hodila, děkuji.

Petr Krčmář

Jádro nemůže pokračovat ve startu, protože nebyl určen správný disk s operačním systémem. Takže ve chvíli, kdy je čas připojit kořenový svazek, se to nepodaří a nedá se pokračovat. Postup je v Grubu otevřít editaci (klávesa e) a změnit parametry jádra tak, aby parametr root ukazoval na správný disk.

Pokud nevíš, který je ten správný, pak je třeba v Grubu vlézt do konzole (klávesa c) a tam pomocí příkazu ls si ty disky vypsat a zjistit aktuální rozložení. Samozřejmě pomůže taky si nabootovat nějaký live systém a podívat se na rozložení disků v něm.

bdmin


Jo, k tomu jsem taky došel. ALE v bootu je právě disk se systémem nastavený, takže to bootuje jen z něj. Jak jako otevřít v Grubu? Já se nikam nedostanu, nebo nevím jak, jelikož nejen, že jsem nový do linuxu a těchto věcí, ale této chybě absolutně nechápu. Při bootu mi to nepovolí nic, když mačkám klávesy, jak říkáš.
Mě jen napadlo, nemůže být problém v tom, když jsem fyzický server s jedním diskem rozděleným do 4 oddílů kopíroval do Proxmoxu jako jednotlivé disky, místo oddílů do jednoho disku? Protože ted mam v Proxmoxu ty 4, což je uplně naopak, než by mělo být.

Na ten cloning/kopírování fyzického do virtuálního používám Clonezillu.

Roman Horník

Samozřejmě, že v tom problém je, protože ty oddíly teď maj jiný UUID. Ty zjistíš příkazem blkid <oddíl> (např. /dev/sda1) například v "nouzáku" instalačního média, případně po bootu živýho distra (z flashky, CD,...), a tyhle údaje opravíš v /etc/fstab na disku. Pak by to mělo fungovat.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

bdmin

Citace od: Roman Horník kdy 11. 02. 2022, 20:59:45
Samozřejmě, že v tom problém je, protože ty oddíly teď maj jiný UUID. Ty zjistíš příkazem blkid <oddíl> (např. /dev/sda1) například v "nouzáku" instalačního média, případně po bootu živýho distra (z flashky, CD,...), a tyhle údaje opravíš v /etc/fstab na disku. Pak by to mělo fungovat.

Jo, to jsem taky někde vyčetl. Problém ale je, že to má být jeden disk se 4mi oddíly. A bylo mi doporučeno to UUID neměnit, jelikož by to do budoucna nepřineslo nic dobrého. Takže bych rád na to nastavení Clonezilly, jak to zkopírovat správně do jednoho disku se čtyřmi oddíly.

Roman Horník

Po pravdě nevím, jestli vůbec jde UUID disku/oddílů změnit podle svýho, ani podle čeho se počítá. Mně stačilo změnit v BIOSu režim SATA a mohl jsem zapomenout na boot, protože došlo k jejich změně.
Nevím, proč by to nemělo přinýst nic dobrýho, jen si zjistíš aktuální UUID oddílů a přepíšeš je v /etc/fstab, je to jednorázově. Původní řádky můžeš z nostalgie/pro sichr zachovat, akorát je potřeba je zakomentovat (# na začátku každýho z těch řádků), aby si jich mount nevšímal.
Další možností je použít starej způsob, kde místo UUID se použije /dev/sdxy (třeba sdb2). Jenže v případě víc jak jednoho disku hrozí, že se první, co měl mít sda, trochu opozdí, takže sda dostane ten druhej, a první dostane sdb a zase nenabootuješ. Ale není k používání starýho způsobu důvod.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

radek_dr

Nevím, já používám starý způsob stále (sdx#), protože pokaždé vím, kde jsem. Dřív jsem s disky dost 'čaroval' a nikdy problém nebyl. Ve větším notasu mám dva disky a nikdy se mi nestalo, že by se jejich označení změnilo, a to ani když jsem měnil klasický HDD za SSD a naopak... Systém s UUID jsem nikdy dost dobře nepochopil, už i proto, že výpis 'fdisk -l' je taky značí postaru.
Acer Swift1, N4200 2.5 GHz max., 4GB RAM, 64+250GB SSD, Intel graphic, Debian 12 Cinnamon
Intel NUC,  Celeron J3455, 8GB RAM, 256GB SSD, Debian 11 server, Apache, Nginx proxy, KVM...
AS8940G, Intel i7 ..., LM19 xfce

Nikdo není dokonalý !

Petr Krčmář

Já zase označení podle /dev/sdX dávno nepoužívám, právě proto, že je to velmi křehké označení. Stačí nějaká změna v diskovém subsystému a je problém. Celé tohle vlákno je jeho příkladem.

Mnohem bezpečnější je označení pomocí UUID nebo pomocí pojmenování Label. Obojí je možné snadno zjistit a obojí je možné samozřejmě v případě potřeby změnit.

Různé možnosti zjištění:

# fdisk -l -o +uuid
# blkid
# ls /dev/disk/by-uuid/
# ls /dev/disk/by-label/


Případně změna:


# tune2fs -U random /dev/sdc1
# tune2fs -L Filmy /dev/sdc1


Pak už používám vždy UUID nebo nastavený Label.

Roman Horník

Citace od: Petr Krčmář kdy 17. 02. 2022, 15:40:26
Já zase označení podle /dev/sdX dávno nepoužívám, právě proto, že je to velmi křehké označení.
No právě. Většinou vyhovovalo, ale když se po spuštění stroje první disk opozdil před druhým, sda se změnilo v sdb a opačně, a už byl problém.
Nejlepší mi přijde label. Ten si snadno zapamatuješ (všechny UUID jen v případě, že jseš magor), a hlavně to není tak křehký ani jako UUID, protože například jakmile v BIOSu změníš režim SATA z AHCI na výchozí IDE (třeba po vymazání nastavení BIOSu), hned dostaneš jinou sadu UUID a nenabootuješ.

Řádek ke každýmu oddílu ve fstab pak začíná místo:
UUID=128f736e-2131-4bf2-a2ed-0deb1c9ab2d5
na:
LABEL=Root_na_SSD1
Například. A hned vidíš, že je to kořen na prvním SSD.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz