Co się stało z GRUB-em?

Witam szanownych kolegów!
Tym razem to ja muszę prosić o Wasze wsparcie, albowiem mam dziwny problem, który próbowałem rozwiązać samodzielnie na różne sposoby, lecz wszystkie zawiodły i skończyły mi się już pomysły. Być może ktoś z Was wpadnie na coś, co mi umyka. Ale do rzeczy.
Otóż przedwczoraj (tj. 5 maja 2023 roku) podczas uruchamiania systemu zamiast pulpitu na ekranie mojego monitora ukazał się następujący komunikat:

                           e
rror: disk `,gpt2’ not found.
Entering rescue mode…
grub rescue>

Ponieważ pora była już późna postanowiłem spróbować rozwiązać problem na szybko, chociaż nie wiązałem z tym pomysłem wielkich nadziei - odpaliłem live pena i spróbowałem przy pomocy Timeshift’a przywrócić migawkę BTRFS z poprzedniego dnia - rzecz jasna pomysł nie wypalił.
Dopiero dzisiaj znalazłem czas, żeby usiąść do kompa na dłużej i zająć się sprawą na poważnie.

Na początek postanowiłem wykluczyć awarię sprzętową lub błedy w tablicy partycji. W tym celu utworzyłem na wolnym miejscu na podejrzanym dysku nową partycję i wrzuciłem na nią plik tekstowy, następnie udało mi się go odczytać:

Dysk przed utworzeniem nowej partycji:

Dysk po utworzeniu nowej partycji:

Stwierdziwszy, że dysk prawdopodobnie jest sprawny spróbowałem przeinstalować program rozruchowy według instrukcji podanych na stronie:
https://wiki.manjaro.org/index.php/GRUB/Restore_the_GRUB_Bootloader#Overview

Niestety i tym razem po ponownym uruchomieniu komputera ujrzałem ten sam komunikat o błędzie. Wtedy postanowiłem skorzystać z ,opcji atomowej" - za pomocą polecenia dd utworzyłem na zewnętrznym dysku USB obrazy wszystkich partycji z podejrzanego dysku, każdą w osobnym pliku, żeby mieć ich kopie zapasowe. Następnie na nowo zainstalowałem system, formatując partycję rozruchową (efi) oraz systemową (/), partycję domową (/home) pozostawiłem bez zmian.

Po restarcie komputera wciąż widzę ten sam błąd i nie wiem co dalej począć…

Model dysku twardego to Patriot Hellfire M2 – tablica partycji GPT; wszystkie partycje sformatowane systemem plików BTRFS.

inxi -DLMoPpRS:

System:
  Host: manjaro Kernel: 6.1.25-1-MANJARO arch: x86_64 bits: 64
    Desktop: KDE Plasma v: 5.27.4 Distro: Manjaro Linux
Machine:
  Type: Desktop Mobo: MSI model: Z170A PC MATE (MS-7971) v: 2.0
    serial: F916323830 UEFI: American Megatrends v: A.40 date: 09/07/2015
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 2.74 TiB used: 1.1 MiB (0.0%)
  ID-1: /dev/nvme0n1 vendor: Patriot model: Hellfire M2 size: 447.13 GiB
  ID-2: /dev/sda vendor: Seagate model: ST2000DM008-2FR102 size: 1.82 TiB
  ID-3: /dev/sdb vendor: Apacer model: AS350 512GB size: 476.94 GiB
  ID-4: /dev/sdg type: USB vendor: Wilk model: N/A size: 7.21 GiB
  ID-5: /dev/sdh type: USB vendor: SanDisk model: Cruzer Switch
    size: 14.56 GiB
Partition:
  ID-1: /mnt size: 14.55 GiB used: 1.1 MiB (0.0%) fs: vfat dev: /dev/sdh1
Unmounted:
  ID-1: /dev/nvme0n1p1 size: 1024 MiB fs: vfat
  ID-2: /dev/nvme0n1p2 size: 59 GiB fs: btrfs
  ID-3: /dev/nvme0n1p3 size: 4 GiB fs: swap
  ID-4: /dev/nvme0n1p4 size: 315 GiB fs: btrfs
  ID-5: /dev/sda1 size: 400 GiB fs: ntfs
  ID-6: /dev/sda2 size: 200 GiB fs: ntfs
  ID-7: /dev/sda3 size: 1.23 TiB fs: ntfs
  ID-8: /dev/sdb1 size: 100 MiB fs: vfat
  ID-9: /dev/sdb2 size: 16 MiB fs: N/A
  ID-10: /dev/sdb3 size: 476.83 GiB fs: ntfs
  ID-11: /dev/sdg1 size: 3.88 GiB fs: iso9660
  ID-12: /dev/sdg2 size: 4 MiB fs: vfat

Zastanawiam się, czy ten komunikat aby na pewno pochodzi od programu rozruchowego Manjaro. UEFI (teraz to wgrywają w pamięci flash płyt głównych zamiast BIOS-a) w mojej płycie głównej* posiada wbudowaną prymitywną uniksową powłokę tekstową, więc nie wiadomo, czy nie posiada również własnego GRUB-a.

*Model płyty głównej: MSI Z170A PC MATE (MS-7971)
Oprogramowanie płyty głównej: MSI Click Bios 5 version E7971IMS.A40 z 09.07.2015

Darzę ją ograniczonym zaufaniem, ponieważ parę lat temu, gdy miałem w niej zamontowany tuner TV w trakcie burzy piorun uderzył w antenę telewizyjną. Z dymem poszedł telewizor i wspomniany tuner podpięty do anteny za pomocą rozgałęźnika antenowego, ponadto na płycie zdechły wszystkie gniazda PCI, trzy spośród czterech gniazd pamięci RAM, drukarka podpięta do komputera kablem USB oraz router, do którego był podpięty komputer za pomocą kabla. kilkanaście miesięcy po tamtym zdarzeniu zaczęły mi świrować napędy optyczne - w losowych momentach uruchamiały się jakby próbowały odtwarzać płytę, chociaż były puste albo samoczynnie wysuwały i wsuwały tacki na płyty. W końcu odpiąłem od nich wtyczki - teraz to tylko atrapy służące za zaślepki do dziur w obudowie. Cała przytoczona historia świadczy o tym, że skutki tego wypadku z piorunem mogą się pojawiać z wielomiesięcznym opóźnieniem i nie wiem, czy zaistniała obecnie sytuacja nie jest przypadkiem związana z tą historią. Niestety nie mam innego komputera, do którego mógłbym podłączyć mój dysk i sprawdzić, czy działa. :frowning_face:

Nie pokazało żadnych błędów podczas tej procedury? Próbowałeś automatycznego chroota (manjaro-chroot -a) czy robiłeś wszystko ręcznie? W drugim przypadku uwzględniłeś, że to btrfs i zamontowałeś subwolumeny?

Moim zdaniem raczej średni pomysł na test. Lepiej sprawdzić SMART. Zrobisz to przez smartctl (lub nvme skoro twój dyskt to NVME). Jeśli dysk to wspiera, możesz go też przetestować, oba narzędzia mają od tego stosowne komendy :wink:

Dziękuję za odpowiedź.

SMART:

smartctl -x /dev/nvme0
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.25-1-MANJARO] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       Patriot Hellfire M2
Serial Number:                      C6EF076A15E100008792
Firmware Version:                   E7FM02.1
PCI Vendor/Subsystem ID:            0x1987
IEEE OUI Identifier:                0x000000
Controller ID:                      0
NVMe Version:                       1.2
Number of Namespaces:               1
Namespace 1 Size/Capacity:          480 103 981 056 [480 GB]
Namespace 1 Formatted LBA Size:     512
Local Time is:                      Mon May  8 15:27:21 2023 UTC
Firmware Updates (0x02):            1 Slot
Optional Admin Commands (0x0007):   Security Format Frmw_DL
Optional NVM Commands (0x001e):     Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat
Log Page Attributes (0x03):         S/H_per_NS Cmd_Eff_Lg
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     110 Celsius
Critical Comp. Temp. Threshold:     130 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     7.90W       -        -    0  0  0  0        0       0
 1 +     2.40W       -        -    1  1  1  1      600     600
 2 +     1.90W       -        -    2  2  2  2      600     600
 3 -   0.1100W       -        -    3  3  3  3      600     600
 4 -   0.0050W       -        -    4  4  4  4   100000  160000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         1

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        57 Celsius
Available Spare:                    100%
Available Spare Threshold:          0%
Percentage Used:                    2%
Data Units Read:                    27 015 122 [13,8 TB]
Data Units Written:                 15 875 990 [8,12 TB]
Host Read Commands:                 579 349 296
Host Write Commands:                490 215 813
Controller Busy Time:               0
Power Cycles:                       5 942
Power On Hours:                     4 836
Unsafe Shutdowns:                   285
Media and Data Integrity Errors:    0
Error Information Log Entries:      1 466 481
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 2:               85 Celsius

Error Information (NVMe Log 0x01, 16 of 64 entries)
Num   ErrCount  SQId   CmdId  Status  PELoc          LBA  NSID    VS
  0    1466481     0  0x3012  0x4004      -            6     1     -
  1    1466480     0  0x0019  0x4016      -     67043333     1     -
  2    1466479     0  0x0020  0x4004      -            0     1     -
  3    1466478     0  0x001f  0x4004      -            0     1     -
  4    1466477     0  0x0002  0x4004      -          208     1     -
  5    1466476     0  0x0020  0x4004      -            0     1     -
  6    1466475     0  0x001f  0x4004      -            0     1     -
  7    1466474     0  0x0002  0x4004      -          208     1     -
  8    1466473     0  0x0020  0x4004      -            0     1     -
  9    1466472     0  0x001f  0x4004      -            0     1     -
 10    1466471     0  0x0002  0x4004      -          208     1     -
 11    1466470     0  0x0020  0x4004      -            0     1     -
 12    1466469     0  0x001f  0x4004      -            0     1     -
 13    1466468     0  0x0002  0x4004      -          208     1     -
 14    1466467     0  0x0008  0x4004      -            6     1     -
 15    1466466     0  0x0011  0x4016      -     67043333     1     -
... (48 entries not read)

NVME:

nvme -smart-log /dev/nvme0
Smart Log for NVME device:nvme0 namespace-id:ffffffff
critical_warning                        : 0
temperature                             : 64 °C (337 K)
available_spare                         : 100%
available_spare_threshold               : 0%
percentage_used                         : 2%
endurance group critical warning summary: 0
Data Units Read                         : 270???15219 (13,83 TB)
Data Units Written                      : 158???75990 (8,13 TB)
host_read_commands                      : 5???793???50646
host_write_commands                     : 4???902???15813
controller_busy_time                    : 0
power_cycles                            : 5942
power_on_hours                          : 4836
unsafe_shutdowns                        : 285
media_errors                            : 0
num_err_log_entries                     : 14???66481
Warning Temperature Time                : 0
Critical Composite Temperature Time     : 0
Temperature Sensor 2           : 85 °C (358 K)
Thermal Management T1 Trans Count       : 0
Thermal Management T2 Trans Count       : 0
Thermal Management T1 Total Time        : 0
Thermal Management T2 Total Time        : 0

Przywróciłem wszystkie partycje z obrazów służących za kopie zapasowe - wspominałem o nich w pierwszym poście i podjąłem kolejną próbę przeinstalowania GRUB-a. Oto wyniki:

su
[manjaro manjaro]# manjaro-chroot -a
grub-probe: error: cannot find a GRUB drive for /dev/sdg1.  Check your device.map.
grub-probe: error: cannot find a GRUB drive for /dev/sdg1.  Check your device.map.
==> ERROR: No Linux partitions detected!
[manjaro manjaro]#  mount -o subvol=@ /dev/nvme0n1p2 /mnt
[manjaro manjaro]#  mount /dev/nvme0n1p1 /mnt/boot/efi
[manjaro manjaro]# manjaro-chroot /mnt /bin/bash
[manjaro /]# pacman -Sy grub
:: Synchronizing package databases...
 mesa-nonfree is up to date
 core                                     141,1 KiB   331 KiB/s 00:00 [#######################################] 100%
 extra                                   1640,5 KiB  2,02 MiB/s 00:01 [#######################################] 100%
 community                                  6,8 MiB  1516 KiB/s 00:05 [#######################################] 100%
 multilib                                 145,2 KiB  1092 KiB/s 00:00 [#######################################] 100%
resolving dependencies...
looking for conflicting packages...

Packages (1) grub-2.06.r499.ge67a551a4-2

Total Download Size:   14,91 MiB
Total Installed Size:  47,17 MiB
Net Upgrade Size:      -0,19 MiB

:: Proceed with installation? [Y/n] y
warning: no /var/cache/pacman/pkg/ cache exists, creating...
:: Retrieving packages...
 grub-2.06.r499.ge67a551a4-2-x86_64        14,9 MiB  1475 KiB/s 00:10 [#######################################] 100%
(1/1) checking keys in keyring                                        [#######################################] 100%
(1/1) checking package integrity                                      [#######################################] 100%
(1/1) loading package files                                           [#######################################] 100%
(1/1) checking for file conflicts                                     [#######################################] 100%
(1/1) checking available disk space                                   [#######################################] 100%
:: Running pre-transaction hooks...
(1/1) Creating Timeshift snapshot before upgrade...
Using system disk as snapshot device for creating snapshots in BTRFS mode

** (process:76): CRITICAL **: 15:45:58.102: tee_jee_file_system_path_combine: assertion 'path1 != NULL' failed

** (process:76): CRITICAL **: 15:45:58.102: tee_jee_file_system_dir_exists: assertion 'dir_path != NULL' failed

** (process:76): CRITICAL **: 15:45:58.106: tee_jee_file_system_path_combine: assertion 'path1 != NULL' failed

** (process:76): CRITICAL **: 15:45:58.106: tee_jee_file_system_dir_exists: assertion 'dir_path != NULL' failed
E: Selected snapshot device is not a system disk
E: Select BTRFS system disk with root subvolume (@)

** (process:117): CRITICAL **: 15:45:58.200: gee_abstract_collection_get_size: assertion 'self != NULL' failed
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/manjaro/theme.txt
Found linux image: /boot/vmlinuz-6.2-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-6.2-x86_64.img
Found initrd fallback image: /boot/initramfs-6.2-x86_64-fallback.img
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
grub-probe: error: cannot find a GRUB drive for /dev/sdg1.  Check your device.map.
grub-probe: error: cannot find a GRUB drive for /dev/sdg1.  Check your device.map.
Adding boot menu entry for UEFI Firmware Settings ...
Detecting snapshots ...
Found snapshot: 2023-05-04 11:00:02 | timeshift-btrfs/snapshots/2023-05-04_11-00-02/@ | daily          | N/A                                           |
Found snapshot: 2023-05-04 09:46:10 | timeshift-btrfs/snapshots/2023-05-04_09-46-10/@ | ondemand       | {timeshift-autosnap} {created before upgrade} |
Found snapshot: 2023-05-03 17:01:22 | timeshift-btrfs/snapshots/2023-05-03_17-01-22/@ | ondemand       | {timeshift-autosnap} {created before upgrade} |
Found snapshot: 2023-05-03 11:00:01 | timeshift-btrfs/snapshots/2023-05-03_11-00-01/@ | daily          | N/A                                           |
Found snapshot: 2023-05-02 11:00:02 | timeshift-btrfs/snapshots/2023-05-02_11-00-02/@ | daily          | N/A                                           |
Found snapshot: 2023-05-01 11:00:01 | timeshift-btrfs/snapshots/2023-05-01_11-00-01/@ | daily          | N/A                                           |
Found snapshot: 2023-04-29 18:00:02 | timeshift-btrfs/snapshots/2023-04-29_18-00-02/@ | daily          | N/A                                           |
Found snapshot: 2023-04-21 16:28:43 | timeshift-btrfs/snapshots/2023-04-21_16-28-43/@ | ondemand daily | {timeshift-autosnap} {created before upgrade} |
Found snapshot: 2023-02-20 20:39:38 | timeshift-btrfs/snapshots/2023-02-20_20-39-34/@ | ondemand       | Przed usunięciem pakietu java8-openjfx       |
Found 9 snapshot(s)
Unmount /tmp/grub-btrfs.UMEZM042HN .. Success
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: warning: unknown device type nvme0n1.
done
:: Processing package changes...
(1/1) upgrading grub                                                  [#######################################] 100%
:: Running post-transaction hooks...
(1/3) Arming ConditionNeedsUpdate...
(2/3) Refreshing PackageKit...
Error connecting: Could not connect: No such file or directory
error: command failed to execute correctly
(3/3) Updating the info directory file...
[manjaro /]# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
Installing for x86_64-efi platform.
Installation finished. No error reported.
[manjaro /]# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/manjaro/theme.txt
Found linux image: /boot/vmlinuz-6.2-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-6.2-x86_64.img
Found initrd fallback image: /boot/initramfs-6.2-x86_64-fallback.img
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
grub-probe: error: cannot find a GRUB drive for /dev/sdg1.  Check your device.map.
grub-probe: error: cannot find a GRUB drive for /dev/sdg1.  Check your device.map.
Adding boot menu entry for UEFI Firmware Settings ...
Detecting snapshots ...
Found snapshot: 2023-05-04 11:00:02 | timeshift-btrfs/snapshots/2023-05-04_11-00-02/@ | daily          | N/A                                           |
Found snapshot: 2023-05-04 09:46:10 | timeshift-btrfs/snapshots/2023-05-04_09-46-10/@ | ondemand       | {timeshift-autosnap} {created before upgrade} |
Found snapshot: 2023-05-03 17:01:22 | timeshift-btrfs/snapshots/2023-05-03_17-01-22/@ | ondemand       | {timeshift-autosnap} {created before upgrade} |
Found snapshot: 2023-05-03 11:00:01 | timeshift-btrfs/snapshots/2023-05-03_11-00-01/@ | daily          | N/A                                           |
Found snapshot: 2023-05-02 11:00:02 | timeshift-btrfs/snapshots/2023-05-02_11-00-02/@ | daily          | N/A                                           |
Found snapshot: 2023-05-01 11:00:01 | timeshift-btrfs/snapshots/2023-05-01_11-00-01/@ | daily          | N/A                                           |
Found snapshot: 2023-04-29 18:00:02 | timeshift-btrfs/snapshots/2023-04-29_18-00-02/@ | daily          | N/A                                           |
Found snapshot: 2023-04-21 16:28:43 | timeshift-btrfs/snapshots/2023-04-21_16-28-43/@ | ondemand daily | {timeshift-autosnap} {created before upgrade} |
Found snapshot: 2023-02-20 20:39:38 | timeshift-btrfs/snapshots/2023-02-20_20-39-34/@ | ondemand       | Przed usunięciem pakietu java8-openjfx       |
Found 9 snapshot(s)
Unmount /tmp/grub-btrfs.ODuafqAQwP .. Success
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: warning: unknown device type nvme0n1.
done
[manjaro /]# lsblk -o PATH,PTTYPE,PARTTYPE,FSTYPE,PARTTYPENAME
PATH           PTTYPE PARTTYPE FSTYPE PARTTYPENAME
/dev/loop0
/dev/loop1
/dev/loop2
/dev/loop3
/dev/sda
/dev/sda1
/dev/sda2
/dev/sda3
/dev/sdb
/dev/sdb1
/dev/sdb2
/dev/sdb3
/dev/sdc
/dev/sdd
/dev/sde
/dev/sdf
/dev/sdg
/dev/sdg1
/dev/sdg2
/dev/sdh
/dev/sdh1
/dev/nvme0n1
/dev/nvme0n1p1
/dev/nvme0n1p2
/dev/nvme0n1p3
/dev/nvme0n1p4
[manjaro /]# ls /sys/firmware/efi
config_table  efivars  esrt  fw_platform_size  fw_vendor  runtime  runtime-map  systab
[manjaro /]# exit
exit
[manjaro manjaro]# mount | grep /mnt
/dev/nvme0n1p2 on /mnt type btrfs (rw,relatime,ssd,space_cache,subvolid=913,subvol=/@)
/dev/nvme0n1p1 on /mnt/boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
[manjaro manjaro]# umount /mnt/boot/efi
[manjaro manjaro]# umount /mnt
[manjaro manjaro]# exit
exit

Na dalsze dłubanie będę miał czas prawdopodobnie dopiero w przyszłą niedzielę.
Pozdrawiam.

Dzisiaj udało mi się uruchomić system dzięki zewnętrznej stacji dokującej na USB kupionej przez Internet. Najwyraźniej moja płyta główna zaczyna się domagać emerytury.