背景:停電後にコンピュータが起動しなくなりました。
- LIVE DVDを起動し、すべてのファイルシステムをマウントできます。
fsck
私のブートパーティション(ext2)とシステム/ルートパーティション(btrfs)の両方がきれいです。smartctl -t short
どちらもとてもきれいです。- 古いBIOS(EUFIなし)を使用するコンピュータがあります。
grub2
Live DVDで再インストールしましたが、chroot
何も変わりませんでした。以下は、オペレーティングシステムの選択後にシステムによって提供されるグラブスタート画面とエラーメッセージです。
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.1.0-18-amd64 #1 Debian 6.1.76-1
Hardware name: Dell Inc. Studio XPS 8100/0G3HR7, BIOS A05 07/08/2010
Call Trace:
<TASK>
dump_stack_lvl+0x44/0x5c
panic+0x118/0x2ed
mount_block_root+0x1d3/0x1e6
prepare_namespace+0x136/0x165
kernel_init_freeable+0x25c/0x286
? ret_init+0xd0/0xd0
kernel_init+0x16/0x130
ret_from_fork+0x22/0x30
</TASK>
Kernel Offset: 0x15c00000 from 0xffffffff81000000 (relocatinrange: 0xffffffff80000000-0xffffffffbfffffff)
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
このエラーメッセージをどのように解釈するのかわかりません。ルートファイルシステムはbtrfs
。ファイルがinitrd
破損し、ルートFSをマウントするために必要なbtrfsモジュールをロードできないことを理解する必要がありますか?どうですか?
追加情報(以前のカーネルから起動した後):
lsblk -e 7 -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1
├─sda2
├─sda3 77.8G 97% /home
└─sda4
sdb
├─sdb1
├─sdb2
├─sdb3 115G 45% /
└─sdb4 634.2M 29% /boot
sdc
sdd
sde
sdf
sdg
└─sdg1
sr0
_
grep -oP 'root=UUID=[\w-]+' /boot/grub/grub.cfg | sort -u
root=UUID=172d2f2b-c176-472b-b20a-0a382e24ae72
正しいパーティションは次のとおりです/
。/dev/sdb3
cat /etc/fstab
UUID=abee2947-6832-4332-915e-abc122a347cf /boot ext2 defaults,noatime 0 2
UUID=172d2f2b-c176-472b-b20a-0a382e24ae72 / btrfs subvol=@,defaults,noatime,space_cache,autodefrag,discard,compress=lzo 0 1
UUID=7994d68f-8067-4742-b104-45ace8e53c0e /home btrfs subvol=/__racine/home,defaults,noatime,nodiratime,space_cache,autodefrag,compress=lzo 0 2
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
UUID=d3529b3b-4338-4371-8f9b-f725142c5eb2 none swap defaults 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,auto 0 0
_
ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Apr 28 17:32 121C-191D -> ../../sdg1
lrwxrwxrwx 1 root root 10 Apr 28 17:32 172d2f2b-c176-472b-b20a-0a382e24ae72 -> ../../sdb3
lrwxrwxrwx 1 root root 9 Apr 28 17:32 2020-09-26-10-57-36-00 -> ../../sr0
lrwxrwxrwx 1 root root 10 Apr 28 17:32 26a14333-8209-4ae1-bc51-f691d7533e68 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 28 17:32 7994d68f-8067-4742-b104-45ace8e53c0e -> ../../sda3
lrwxrwxrwx 1 root root 10 Apr 28 17:32 abee2947-6832-4332-915e-abc122a347cf -> ../../sdb4
lrwxrwxrwx 1 root root 10 Apr 28 17:32 d3529b3b-4338-4371-8f9b-f725142c5eb2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 28 17:32 f530e8e6-9888-4938-8336-f3e4e40565cf -> ../../sdb2
_
ps aux | grep udev
root 548 0.0 0.0 23876 6028 ? Ss 17:17 0:00 /lib/systemd/systemd-udevd
_
grep error /var/log/syslog
2024-04-28T12:32:15.736464+02:00 PC-Alain kernel: [ 53.465073] nouveau 0000:01:00.0: Direct firmware load for nouveau/nve7_fuc084 failed with error -2
2024-04-28T12:32:15.736468+02:00 PC-Alain kernel: [ 53.465097] nouveau 0000:01:00.0: Direct firmware load for nouveau/nve7_fuc084d failed with error -2
2024-04-28T12:32:41.304635+02:00 PC-Alain kernel: [ 79.156892] nouveau 0000:01:00.0: Direct firmware load for nouveau/nve7_fuc084 failed with error -2
2024-04-28T12:32:41.304641+02:00 PC-Alain kernel: [ 79.156938] nouveau 0000:01:00.0: Direct firmware load for nouveau/nve7_fuc084d failed with error -2
2024-04-28T12:36:54.316202+02:00 PC-Alain wireplumber[6397]: RTKit error: org.freedesktop.DBus.Error.AccessDenied
2024-04-28T12:36:54.322518+02:00 PC-Alain pipewire-pulse[6398]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
2024-04-28T12:36:54.329509+02:00 PC-Alain pipewire[6394]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
2024-04-28T12:36:54.351221+02:00 PC-Alain wireplumber[6397]: RTKit error: org.freedesktop.DBus.Error.AccessDenied
2024-04-28T12:36:54.358502+02:00 PC-Alain pipewire-pulse[6398]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
2024-04-28T12:36:54.365165+02:00 PC-Alain pipewire[6394]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
2024-04-28T15:51:21.496580+02:00 PC-Alain kernel: [11999.307831] nouveau 0000:01:00.0: Direct firmware load for nouveau/nve7_fuc084 failed with error -2
2024-04-28T15:51:21.496584+02:00 PC-Alain kernel: [11999.307850] nouveau 0000:01:00.0: Direct firmware load for nouveau/nve7_fuc084d failed with error -2
2024-04-28T16:51:28.020418+02:00 PC-Alain kernel: [15605.817830] traps: tracker-extract[92460] trap int3 ip:7f280dd9f7d7 sp:7ffcf0086ab0 error:0 in libglib-2.0.so.0.7400.6[7f280dd61000+8d000]
2024-04-28T16:51:28.268449+02:00 PC-Alain kernel: [15606.063394] traps: tracker-extract[92474] trap int3 ip:7f1f488897d7 sp:7ffd77407190 error:0 in libglib-2.0.so.0.7400.6[7f1f4884b000+8d000]
2024-04-28T16:51:47.444575+02:00 PC-Alain dockerd[2536]: time="2024-04-28T16:51:47.444485465+02:00" level=info msg="stopping event stream following graceful shutdown" error="<nil>" module=libcontainerd namespace=moby
_
以下は、メインメニュー項目の/boot/grub/grub.cfgから抜粋したものです。
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd1,gpt4'
search --no-floppy --fs-uuid --set=root abee2947-6832-4332-915e-abc122a347cf
echo 'Loading Linux 6.1.0-18-amd64 ...'
linux /vmlinuz-6.1.0-18-amd64 root=/dev/sdb3 ro rootflags=subvol=@ quiet splash
}
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd1,gpt4'
search --no-floppy --fs-uuid --set=root abee2947-6832-4332-915e-abc122a347cf
echo 'Loading Linux 6.1.0-18-amd64 ...'
linux /vmlinuz-6.1.0-18-amd64 root=/dev/sdb3 ro rootflags=subvol=@ quiet splash
}
答え1
歴史的に、ルートファイルシステムは起動時にデバイス名として見つかりました。残念ながら、Linuxの動的デバイスシステムの性質により、起動するたびにデバイス名が異なる場合があります。
この問題を解決するために、ルートファイルシステムは、変更されていないディスクとパーティションの属性であるLABELまたはUUIDなどの他のエントリによって配置されます。
残念ながら、ファイルシステムのUUIDが消去されたか、正しく検出されていないようです。
これには3つのオプションがあります。
ラベル(ボリューム名)の追加(/dev/disk/by-labelを見て、すでにラベルがあるかどうかを確認することもできます)
ファイルシステムに新しいランダムUUIDを割り当てます。たとえば、ルートファイルシステムがext4であると仮定すると、
une2fs -U ランダム /dev/sdb3
元のUUIDを各ファイルシステムに再割り当てする
2fs -U 172d2f2b-c176-472b-b20a-0a382e24ae72調整
UUIDが欠落しているマウントされた各ディスクに対してこれを行う必要があります。 UUIDはシステム内で一意である必要があるため、各ディスクに対してランダムに使用するか、fstabで(固有の)raw UUIDを選択する必要があります。
元のUUIDを再割り当てしない限り、以下も必要です。
- 新しいラベルまたはuuidで/etc/fstabを更新する
- grub設定ファイルを再構築します
update-grub
(上記のgrepコマンドが正しいroot =行を生成したことを確認してください)。