Ubuntu 18.04 ZFS - GRUB helyrehozása

 ( kalmarr | 2019. szeptember 19., csütörtök - 18:20 )

Sziasztok,

segítséget szeretnék kérni tőletek legacy boot helyre hozásával kapcsolatban.

A rendszeremen ZFS file rendszer van és Ubuntu 18.04 futna. Frissítés után valamiért nem tudta frissíteni a grub-ot a rendszer (foglaltáságot) jelzett...
Újra indítás után csak a "Grub rescue" oldal jelent meg.

Próbáltam leírások alapján helyrehozni "https://askubuntu.com/questions/826209/re-initialise-grub-for-non-bootable-uefi-zfs-16-04-installation" , de az MBR instalációt itt sem végezte el, mert hibát dobott:

# grub-install /dev/sda
Installing for i386-pc platform.
grub-install: error: failed to get canonical path of `/dev/spare-1'.

(ez a hiba megoldása lesz szerintem a nyitja a dolgoknak)

# zpool import

pool: systempool
id: 6128198010477243100
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

systempool ONLINE
mirror-0 ONLINE
sda3 ONLINE
spare-1 ONLINE
sdb3 ONLINE
sdc3 ONLINE
spares
sdc3
sdd3

# fdisk -l /dev/sda
Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 641CCA10-BAA5-4F16-BA2E-AF24F81E94E3

Device Start End Sectors Size Type
/dev/sda1 48 2047 2000 1000K BIOS boot
/dev/sda2 2048 1050623 1048576 512M EFI System
/dev/sda3 1050624 420481023 419430400 200G Solaris /usr & Apple ZFS
/dev/sda4 420481024 3907012607 3486531584 1.6T Solaris /usr & Apple ZFS
/dev/sda9 3907012608 3907029134 16527 8.1M Solaris reserved 1

# zfs list
NAME USED AVAIL REFER MOUNTPOINT
systempool 26.3G 166G 96K /mnt
systempool/ROOT 4.55G 172G 96K none
systempool/ROOT/ubuntu 4.55G 3.50G 1.50G /mnt
systempool/home 700K 10.0G 152K /mnt/home
systempool/root 1.00G 167G 152K /mnt/root
systempool/srv 256K 166G 128K /mnt/srv
systempool/swap 4.25G 171G 96K -
systempool/tmp 96K 1024M 96K /mnt/tmp
systempool/var 2.11G 8.89G 96K /mnt/var
systempool/var/cache 108M 1.89G 4.37M /mnt/var/cache
systempool/var/cache/apt 104M 920M 104M /mnt/var/cache/apt
systempool/var/lib 87.5M 9.81G 96K /mnt/var/lib
systempool/var/lib/apt 69.9M 442M 43.5M /mnt/var/lib/apt
systempool/var/lib/dpkg 17.5M 495M 11.8M /mnt/var/lib/dpkg
systempool/var/log 228K 5.00G 220K /mnt/var/log
systempool/var/mail 96K 1024M 96K /mnt/var/mail
systempool/var/spool 96K 1024M 96K /mnt/var/spool
systempool/var/tmp 120K 1024M 120K /mnt/var/tmp

# zfs mount -a
cannot mount '/mnt/root': directory is not empty
cannot mount '/mnt/tmp': directory is not empty
cannot mount '/mnt/var/cache': directory is not empty
cannot mount '/mnt/var/cache/apt': directory is not empty
cannot mount '/mnt/var/lib/apt': directory is not empty
cannot mount '/mnt/var/lib/dpkg': directory is not empty
cannot mount '/mnt/var/log': directory is not empty
cannot mount '/mnt/var/spool': directory is not empty

Feltételezem, hogy a csatolásnál rontok el valamit, mert a "grub-probe /" -ra se ad ZFS-t.

Próbátam a Boot-Repair-t is, de az nem ismeri a ZFS-t.... Ezt a riportot adta:

http://paste.ubuntu.com/p/H4vg9WXXMc/

Kérdésem, hogy hogy lehetne újra életet lehelni a gépembe?

Kalmi

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Ezt a lírást is megnéztem, ahol nagyon egyszerűen le vannak írva a lépések:
https://github.com/zfsonlinux/zfs/wiki/Ubuntu-16.04-Root-on-ZFS#troubleshooting

Az első hiba:
# zfs mount -a
cannot mount '/mnt/root': directory is not empty
cannot mount '/mnt/tmp': directory is not empty
cannot mount '/mnt/var/cache': directory is not empty
cannot mount '/mnt/var/cache/apt': directory is not empty
cannot mount '/mnt/var/lib/apt': directory is not empty
cannot mount '/mnt/var/lib/dpkg': directory is not empty
cannot mount '/mnt/var/log': directory is not empty
cannot mount '/mnt/var/spool': directory is not empty

Utánna minden megy hiba nélkül szépen felcsatolja a gépem könyvárát, de nem akarja a
# update-grub
/usr/sbin/grub-probe: error: failed to get canonical path of `/dev/spare-1'.

-ot :(

# update-initramfs -u -k all
update-initramfs: Generating /boot/initrd.img-4.15.0-64-generic
update-initramfs: Generating /boot/initrd.img-4.15.0-62-generic
update-initramfs: Generating /boot/initrd.img-4.15.0-60-generic

Nem tudok rájönni, hogy hogy lehet rendesen felcsatolni a file rendszert :(

Esetleg ez?

https://pve.proxmox.com/wiki/ZFS:_Tips_and_Tricks

Grub boot ZFS problem

Symptoms: stuck at boot with an blinking prompt.
Reason: If you ZFS raid it could happen that your mainboard does not initial all your disks correctly and Grub will wait for all RAID disk members - and fails. It can happen with more than 2 disks in ZFS RAID configuration - we saw this on some boards with ZFS RAID-0/RAID-10

Boot fails and goes into busybox

If booting fails with something like

No pool imported. Manually import the root pool
at the command prompt and then exit.
Hint: try: zpool import -R /rpool -N rpool

is because zfs is invoked too soon (it has happen sometime when connecting a SSD for future ZIL configuration). To prevent it there have been some suggestions in the forum. Try to boot following the suggestions of busybox or searching the forum, and try ONE of the following:

a) edit /etc/default/grub and add "rootdelay=10" at GRUB_CMDLINE_LINUX_DEFAULT (i.e. GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=10 quiet") and then issue a # update-grub

b) edit /etc/default/zfs, set ZFS_INITRD_PRE_MOUNTROOT_SLEEP='4', and then issue a "update-initramfs -k 4.2.6-1-pve -u"

Megoldásom.

Újra telepítettem a servert és szerintem a következő a hiba...

A rendszer lemezeket nem lehet tartalékba tenni, mert akkor a "#grub-install" hibát okozhat.

pool: systempool
state: ONLINE
scan: none requested
config:

NAME STATE READ WRITE CKSUM
systempool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb3 ONLINE 0 0 0
sdc3 ONLINE 0 0 0
spares
sdd3 AVAIL
sde3 AVAIL

https://unix.stackexchange.com/questions/347466/debian-new-error-message-upgrading-kernel-to-4-9-reload-ioctl-error

/etc/default/grub
GRUB_DISABLE_OS_PROBER=true

Ezzel lehet ki lehet védeni a hibaüzenetet, de nem vagyok benne biztos, hogy ettől függetlenül nem okozhat hibát, illetve frissíti-e a grub-ot.

Pl: a #os-prober hozza továbbra is a hibát:
device-mapper: reload ioctl on osprober-linux-sdd3 failed: Device or resource busy
Command failed
device-mapper: reload ioctl on osprober-linux-sde3 failed: Device or resource busy
Command failed

Szóval úgy telepítem fel most a gépemet, hogy a rendszernél nem lesz tartalék lemez...., illetve mind aktív lesz.

Nem tudom, hogy kinek mi erről a véleménye :)