GNU/Linux >> Znalost Linux >  >> Ubuntu

Chyba sondy Zfs Grub Nepodařilo se získat kanonickou cestu /dev/disk_name?

Pozadí:

  • Ubuntu Xenial
  • ZFS nainstalovaný pro systémový disk (takže víte:rpool/ROOT)
  • Systém běží dobře, ale když se jádro aktualizuje, grub-probe štěká chyba zmíněná výše
  • Raději bych hned nerestartoval

Zde je diskuze o grub-probe a jak by to mělo být „jen lepší“, ale pomáhá to, dokud to nepřijde. Nápad jsem dostal z té diskuse.

Další podrobnosti:úplná instance chyby (pro můj systém) vypadá takto:

/usr/sbin/grub-probe:chyba:nepodařilo se získat kanonickou cestu k `/dev/ata-ADATA_SP550_2G1520009135-part1'. 

To je pohřbeno ve spoustě detailů vycházejících z příkazu apt k instalaci grafických ovladačů (ale to není důležité).

Tento disk odpovídá jednomu z mých oddílů ZIL. Po dokončení instalace jsem přidal ZIL a mezipaměť, takže předpokládám, že proto jsem problém předtím neviděl. Ještě jsem nerestartoval, a proto vůbec vidím problém. Ano, můžete restartovat a opravit to všechno, ale za předpokladu, že to nechcete udělat, čtěte dále:

Když se podívám do /dev, vidím odkazy na všechny mé disky ZFS, které vypadají takto:

lrwxrwxrwx 1 kořen kořene 4 září 16 23:31 ata-wdc_wd10ears-00y5b1_wd-wmav51436394-part1-> sdc1rn-pcclmn -s> swd-wdclmrn -s> swd-pccwlmrwcrn-pcclmr-pcn-pcclmr-pcn-pccwclmrw. kořenový kořenový adresář 4. září 16 23:31 ata-WDC_WD20EZRX-00D8PB0_WD-WCC4N1085683-part1 -> sde1lrwxrwxrwx 1 kořenový adresář 4. září 16. září 23:31 ata-WDC_WCAS-code>NK2WD20B-MH_201301

… ale zejména žádný pro oddíly ZIL.

Situaci mohu otestovat spuštěním:

$ sudo grub-probe /grub-probe:chyba:nepodařilo se získat kanonickou cestu k `/dev/ata-ADATA_SP550_2G1520009135-part1'. 

Otázka tedy zní:jak tento problém vyřešit grub-probe chová?

Přijatá odpověď:

Existuje proměnná prostředí, která to řeší. Problém z mého čtení se zdá být v tom, že Grub má rád myšlenku „podpory“ zfs, ale ne myšlenku opravy problémů souvisejících se zfs v Grub. Konkrétně jeho špatné zpracování chyb, pokud jde o hledání věcí.

Například nástroje grub dodávané s Ubuntu 16.x selžou při hledání /boot na svazku ZFS bez zásahu uživatele a pak vesele zapisují některé (ale ne všechny) potřebné soubory výstup z jakéhokoli nástroje, který používáte, do /boot složku, která vám právě oznámila, že ji nemůže najít.

V každém případě…

http://list.zfsonlinux.org/pipermail/zfs-discuss/2016-June/025765.html

Chcete-li zkontrolovat, zda jste provedli odevzdání (měli byste vidět úplné cesty):ZPOOL_VDEV_NAME_PATH=1 stav fondu Pokud ano, můžete:ZPOOL_VDEV_NAME_PATH=1 grub-whatevs .... 

Proměnnou můžete předat jako vstup nezbytným utilitám grub, nebo ji můžete zadat jako proměnnou shellu v kořenovém adresáři .bashrc nebo .profile nebo podobně s…

exportujte ZPOOL_VDEV_NAME_PATH=YES 

Proměnná způsobí, že zpool hlásí úplné cesty, spíše než relativní /dev cesty k diskům, které mohou nebo nemusí správně fungovat se zfs. Obslužné programy Grub kontrolují stav zpool pro fondy zfs, aby našly disky, které je obsahují. Proto změna výstupu stavu zpool opravuje grub.

Související:Jak odstranit nepotřebné položky EFI z GRUB?

Souhlasím s tím, že uživatelé by se tím neměli zabývat, s odkazem na komentář femulátorky. Skutečné řešení? Stejně jako každý jiný open source projekt, který se potácí v chybách, které se nikdy neopraví. Rozdělte to, opravte to sami a přestaňte používat zdrojový projekt/knihovnu/cokoli. Jinými slovy FOSS způsob, jak někoho „vystřelit“;). Debian si byl této konkrétní chyby vědom již před sedmi lety.

To byla jediná věc, která mi bránila v úspěšné migraci boot poolu FreeBSD RaidZ na Ubuntu. Pokud se někdo jiný pokusí o něco podobného, ​​proces je relativně jednoduchý, pokud rozumíte ZFS natolik dobře, že ignorujete ty části dokumentace z Grub a zfsonlinux, které jsou špatné (jako je nastavení vaší kořenové datové sady tak, aby se automaticky nepřipojovala, eh…? Jak přesně se to potom spustí?). Je poněkud ironické, že Ubuntu ve svých dokumentech poukazuje na to, že zavaděč je nejnebezpečnější „funkcí“ Linuxu, což je, předpokládám, pravda, ale v tomto případě je to také do očí bijící chyba Ubuntu. Migrace fondu BSD ZFS na jiný OS by mi trvala hodinu nebo dvě, pokud bych to mohl udělat pomocí nástrojů Sun/Solaris, které skutečně fungují. Problém je v tom, že jsem musel používat linuxové nástroje (jako Grub), které v určitém okamžiku nefungují (nebo sotva), takže chyba spočívá v dalších dvou dnech, které jsem strávil opravováním. Ubuntu by bylo mnohem lepší, kdyby ke spuštění nepotřebovalo grub…


Ubuntu
  1. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  2. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  3. Kdy použít /dev/random vs /dev/urandom?

  1. Jak úplně umlčet Cronjob do /dev/null/?

  2. Kubuntu zobrazuje chybu při přihlášení (file:///usr/share/sddm//themes/breeze/main.qml:žádný takový soubor nebo adresář)?

  3. Ubuntu 14.04 „nedošlo k přehrávání Uri na vstupním souboru:///*“?

  1. Jak namapovat zařízení /dev/sdX a /dev/mapper/mpathY ze zařízení /dev/dm-Z

  2. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  3. jádro:deaktivace /dev/kmem a /dev/mem