Portál AbcLinuxu, 6. května 2025 01:38
Řešení dotazu:
… 8 144 1953514584 sdj 8 145 1953513560 sdj1 8 128 312571224 sdi 8 129 312570200 sdi1 8 176 1953514584 sdl 8 177 1953513543 sdl1 8 160 1953514584 sdk 8 161 1953513543 sdk1 8 96 488386584 sdg 8 97 488385560 sdg1 ~ # mount LABEL=system /root -o subvol=root mount: mounting /dev/sdg1 on /root failed: Invalid argument ~ # mount /dev/sdi1 /root -o subvol=root ~ # btrfs fi show /root Label: 'system' uuid: 95ab0eec-4930-4400-8d89-4c24d6aa8f28 Total devices 2 FS bytes used 43.21GiB devid 1 size 298.09GiB used 45.03GiB path /dev/sdi1 devid 2 size 465.76GiB used 45.03GiB path /dev/sdg1 ~ # ps -ef | grep sh 1 root {init} /bin/sh /init 281 root sh -i 284 root -sh 315 root [btrfs-flush_del] 336 root grep sh ~ # kill -9 281 ~ # Connection to 192.168.33.101 closed by remote host.Problém je v tom, že když mountuju v ramdisku přes LABEL, nebo uuid, tak se primárně pokouší mountovat /dev/sdg1, což selže. Nicméně dík za nasměrování. Tvrdé odstřelení spuštěného shellu vede ke kýženému výsledku
~ # cat /proc/partitions major minor #blocks name 8 0 1953514584 sda 8 1 1953513560 sda1 8 112 1953514584 sdh 8 113 1953513543 sdh1 8 96 1953514584 sdg 8 97 1953513543 sdg1 8 80 1953514584 sdf 8 81 1953513560 sdf1 8 64 312571224 sde 8 65 312570200 sde1 8 32 488386584 sdc 8 33 488385560 sdc1 8 48 1953514584 sdd 8 49 1953513560 sdd1 8 16 1953514584 sdb 8 17 1953513560 sdb1 8 128 1953514584 sdi 8 129 1953513560 sdi1 8 144 1953514584 sdj 8 145 1953513560 sdj1 8 160 1953514584 sdk 8 161 1953513560 sdk1 8 176 1953514584 sdl 8 177 1953513560 sdl1Takže nikoliv sdg1 a sdi1, jako předtím, ale sde1 a sdc1. Fakt to nechápu. Pokaždé se ty disky najdou nějak jinak. Aniž bych do toho stroje nějak vrtal.
$ sudo lsinitramfs /boot/initrd.img-5.3.0-42-generic | grep systemd lib/systemd lib/systemd/systemd-udevd lib/systemd/network lib/systemd/network/99-default.link lib/x86_64-linux-gnu/libsystemd.so.0.21.0 lib/x86_64-linux-gnu/libsystemd.so.0 lib/modprobe.d/systemd.conftakze vlastne otazka zda to neni i vec udevd
mount /dev/sdi1 /root -o subvol=rootzda by neslo:
mount /dev/disk/by-partuuid/[UUID-TOHO-SPRAVNEHO-ODDILU] /root -o subvol=root(nebo pred */by-uuid, */by-id, atd) a to funkcnii by-X poresit v cfg zavadece...
[...] Jinak v grubu se používá uuid FS, jenže ten idiot vždy leze ne na první z disků, ale na ten druhý. [...]to sem psal, ze (mozna tim ze neznam btrfs) nevim co znamena ze mas v "seskupeni" ty 2 disky, je to raid a prvni je vadnej? proto sem myslel nemit v grub.cfg UUID filesystemu (kterej je asi na tech 2 diskach), ale primo oddilu na tom druhem disku kterej ti rucne pripojit sel
stroj :~# btrfs fi show Label: 'system' uuid: 95ab0eec-4930-4400-8d89-4c24d6aa8f28 Total devices 2 FS bytes used 43.23GiB devid 1 size 298.09GiB used 45.03GiB path /dev/sdi1 devid 2 size 465.76GiB used 45.03GiB path /dev/sdg1 Label: 'main' uuid: 10000000-0000-0000-0000-000000000000 Total devices 10 FS bytes used 6.18TiB devid 1 size 1.82TiB used 1.32TiB path /dev/sda1 devid 2 size 1.82TiB used 1.29TiB path /dev/sdb1 devid 8 size 1.82TiB used 1.19TiB path /dev/sdk1 devid 9 size 1.82TiB used 1.19TiB path /dev/sdl1 devid 10 size 1.82TiB used 1.20TiB path /dev/sdc1 devid 11 size 1.82TiB used 1.31TiB path /dev/sdd1 devid 12 size 1.82TiB used 1.25TiB path /dev/sde1 devid 13 size 1.82TiB used 1.23TiB path /dev/sdf1 devid 14 size 1.82TiB used 1.19TiB path /dev/sdh1 devid 15 size 1.82TiB used 1.19TiB path /dev/sdj1Jak vidíš, původní FS je 'main'. Důvod proč se to nepřipojí v ramdisku je jednoduchý. Ten pitomý skript sáhne na první disk, u kterého najde LABEL a dál už nejde. Přitom by stačilo, aby v případě neúspěšného mountu přešel na další, dokud mount nedopadne, nebo dokud mu nedojdou disky co mají stejný LABEL.
if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 ebd6...A potiz je, ze to proste da prednost tem nazvum v hintech ktery ale v okamziku bootu nemusej vubec platit, a navic pokud samozrejme pridas trebas dalsi disk, tak to cely prestane fungovat uplne. A nenasel sem zadnej zpusob jako ty vopicarne rict, at to negeneruje, takze sem si proste pridal vlastni post-script, kterej to smaze. Kupodivu, se ty vopicarne naopak da rict, at tam nedava uuid. BTW: Trebas HP microserver gen8 ti nazvy devices taky behem inicializace/bootu zmeni, presne proto sem to resil = chtel sem aby to pouzivalo label/uuid. Defakto se mi tam pokud si pamatuju delo to, ze boot sice probeh z hd0, ale kernel to pak uz videl jako hd4 (=pred to zarizeni, se naladovaly ty 4 disky, ktery sou jen datovy a nestartuje to z nich). Tudiz kokotskej grubconfig vzdycky nasral do konfigurace hd4, ze kteryho ale nastartovat pochopitelne neslo a uuid + label to vesele zcela ignorovalo. Kdyz tech disku byl jinej pocet, tak se samo prislusne menilo device (hd3/2/1 ...)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.