I‘ve got a HP-Notebook which ran out of power, cause someone unplugged the power cable, while the top was closed. So, when the battery got empty, the notebook quitted without someone taking notice of the disaster. Next morning, I reconnected the power and tried to start - and at first I thought, everything is working as usual - but soon I saw, there is a big problem: The system doesn‘t start up correctly any more:
There is a M2-SSD installed as the main (first) memory and an other
SSD (normal type) for backup use and additional purposes.
And, I‘ve got Ubuntu 20.04.6 LTS (desktop) installed, using zfs-partitions as the place, where / (the main root) and /boot are situated.
When powering up, the notebook tells me
Boot Device Not Found Please install an operating system on your hard
disk Hard Disk (3FO)
So, I tried to be clever, and started the notebook using a live-system-stick, using the same Ubuntu type.
When checking the drives and their description by using the GUI gnome-disk-utility (3.36.3)
I can see the M2-SSD description as a 512 GB Disk (type ADATA SX8200PNP), used as /dev/nvme0n1
The M2-type-SSD has got 4 partitions:
1st /dev/nvme0n1p1 is an EFI FAT-32 filesystem, using the startup files for grub (UUID: CE07-F830)
2nd /dev/nvme0n1p2 is a swap-partition (even not really necessary)
3rd /dev/nvme0n1p3 is a zfs-pool („zfs-member“) - if it would mount - the fork /boot in the ubuntu mounting hierarchy. Partition-type: "Solaris Boot", content „Unknown (zfs-member 5000) – not mounted“seems
4th /dev/nvme0n1p4 is also a zfs-pool, and the central root ( / ) in the ubuntu mounting hierarchy; it identifies as partition-type: "Solaris Root" and the rest like the previous partition.
The second physical disk is a conventional (SATA) SSD, type WDC 1 TB-Disk WDS....
It is recognized as /dev/sda and its partitions are regarded as follows:
1st 69 GB FAT(32-bit) partition /dev/sda1, UUID AC33-D0D8 (not used), but mounted by the live-system under /media/ubuntu/AC33-D0D8
2nd another zfs-pool, named backpool (not mounted)
At first, I checked (as root), weather the start-up process uses BIOS or (U)EFI
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
and the result was: UEFI
The hardware booting standard of the notebook is also UEFI
The I checked, if both booting modes would be available
dmidecode -t0 | grep -Ei "BIOS boot|UEFI"
and the result was
BIOS boot specification is supported
UEFI is supported
So both starting methods would be available (if necessary).
To complete the information, using
parted -l
results in (german language based, should be understandable anyway)
Modell: ATA WDC WDS100T2B0A (scsi) Festplatte /dev/sda: 1000GB
Sektorgröße (logisch/physisch): 512B/512B Partitionstabelle: gpt
Disk-Flags:
Nummer Anfang Ende Größe Dateisystem Name Flags
1 1049kB 68,7GB 68,7GB fat32 msftdata
2 68,7GB 981GB 913GB zfs
Warnung: Der Treiberdeskriptor sagt, dass die physische Blockgröße
2048 Bytes ist. Linux sagt, dass es 512 Bytes sind.
Ignorieren/Ignore/Abbrechen/Cancel? Ignore
Modell: ADATA SX8200PNP (nvme) Festplatte /dev/nvme0n1: 512GB
Sektorgröße (logisch/physisch): 512B/512B Partitionstabelle: gpt
Disk-Flags:
Nummer Anfang Ende Größe Dateisystem Name Flags
1 1049kB 538MB 537MB fat32 EFI System Partition boot, esp
2 538MB 2685MB 2147MB linux-swap(v1) swap
3 2685MB 4833MB 2147MB zfs
4 4833MB 512GB 507GB zfs
Using
blkid
results in
/dev/nvme0n1p1: UUID="CE07-F830" TYPE="vfat" PARTLABEL="EFI System
Partition" PARTUUID="46e5220d-a629-4b26-8450-9be92ddebc44"
/dev/nvme0n1p3: LABEL="bpool" UUID="9802228009427858141"
UUID_SUB="16061671603784305426" TYPE="zfs_member"
PARTUUID="87a718e6-e031-c141-8914-d43aecf2504b" /dev/nvme0n1p4:
LABEL="rpool" UUID="3451739961591355705"
UUID_SUB="6789784670973405573" TYPE="zfs_member"
PARTUUID="0f41dc6d-1f20-4947-b7e7-49a2c2d81e6f" /dev/sda1:
UUID="AC33-D0D8" TYPE="vfat"
PARTUUID="69b0f50a-d658-44d9-b376-964ff8f6b8a5" /dev/sda2:
LABEL="backpool" UUID="16235635384131684710"
UUID_SUB="9850795481404374110" TYPE="zfs_member"
PARTUUID="9c03c38e-6328-4208-8b88-fd55d85c88ab" /dev/sdb1:
UUID="2023-03-16-15-57-27-00" LABEL="Ubuntu 20.04.6 LTS amd64"
TYPE="iso9660" PTUUID="405a23c7" PTTYPE="dos" PARTUUID="405a23c7-01"
So, I think as a first diagnosis:
- The notebook (by default) boots UEFI-based (so does the USB-live-system-stick)
- The information, about how the M2-Disk and its partitioning-scheme is not corrupted (otherwise, I could not see all the details any more)
- The boot sector could be ok
- The information, how and where to boot and plug-in the zfs-pools got lost and is somewhat unavailable at startup-time.
Additionally I‘ve got two ideas, about the reason about the mess:
A) Either the fact, that /dev/sda/ is preferred to /dev/nvme0n1 leads to looking up startup files on the wrong drive
or
B) the information how and where to mount got somewhat lost.
When the live-stick-boot is finished, there are no zfs-pools or datasets available.
Using
zfs list
leads to
no datasets available
and
zpool status
results in
no pools available
and
df -h -t zfs
tells me
df: keine Dateisysteme bearbeitet (translated: no datasets in use)
Anyways, the content of the pools isn‘t lost. I tried to mount the pools manually, like (in a terminal and as root):
mkdir /boot2
zpool import -f -R /boot2 / backpool
and i can work with the contents.
However, I did not succeed in convincing ubuntu to start up the two zfs-pools (bpool, rpool) and integrating them at boot-time in a running system.
So I need help. Any ideas? Any additional information needed?