質問: ### Linuxの障害対応と準備 Ubuntu Server更新時にエラーが発生しました。 現在稼働中で目立った影響は出ていません。 ストレージの破損だと思いますが /bootなので、少し慎重になっています。 現状、再起動時にfsckで修復を試みるしかないかな?と考えておりますが より良い対応と対策がありましたら、ご教授ください。 ``` $ sudo apt upgrade パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 アップグレードパッケージを検出しています... 完了 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。 1 個のパッケージが完全にインストールまたは削除されていません。 この操作後に追加で 0 B のディスク容量が消費されます。 続行しますか? [Y/n] y linux-firmware (1.157.12) を設定しています ... update-initramfs: Generating /boot/initrd.img-4.4.0-93-generic W: mdadm: /etc/mdadm/mdadm.conf defines no arrays. update-initramfs: Generating /boot/initrd.img-4.4.0-92-generic W: mdadm: /etc/mdadm/mdadm.conf defines no arrays. mv: failed to access '/boot/initrd.img-4.4.0-92-generic': 構造体を内容消去する必要があります dpkg: パッケージ linux-firmware の処理中にエラーが発生しました (--configure): サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました 処理中にエラーが発生しました: linux-firmware E: Sub-process /usr/bin/dpkg returned an error code (1) ``` ### 試したこと 破損状況の確認。 バックアップ。 ### 補足情報 * nvmeで未対応のためsmartctlによる情報なし。 * Linux xxxxxxx 4.4.0-93-generic #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux ``` /boot$ ls -alF ls: 'abi-4.4.0-93-generic' にアクセスできません: 構造体を内容消去する必要があります ls: 'System.map-4.4.0-92-generic' にアクセスできません: 構造体を内容消去する必要があります ls: 'vmlinuz-4.4.0-93-generic' にアクセスできません: 構造体を内容消去する必要があります ls: 'config-4.4.0-92-generic' にアクセスできません: 構造体を内容消去する必要があります ls: 'System.map-4.4.0-93-generic' にアクセスできません: 構造体を内容消去する必要があります ls: 'vmlinuz-4.4.0-92-generic.efi.signed' にアクセスできません: 構造体を内容消去する必要があります ls: 'vmlinuz-4.4.0-92-generic' にアクセスできません: 構造体を内容消去する必要があります ls: 'initrd.img-4.4.0-92-generic' にアクセスできません: 構造体を内容消去する必要があります 合計 83323 drwxr-xr-x 5 root root 3072 9月 7 08:25 ./ drwxr-xr-x 24 root root 4096 8月 30 06:52 ../ -????????? ? ? ? ? ? System.map-4.4.0-92-generic -????????? ? ? ? ? ? System.map-4.4.0-93-generic -rw-r--r-- 1 root root 1246835 8月 10 20:02 abi-4.4.0-92-generic -????????? ? ? ? ? ? abi-4.4.0-93-generic -????????? ? ? ? ? ? config-4.4.0-92-generic -rw-r--r-- 1 root root 190356 8月 12 08:40 config-4.4.0-93-generic drwx------ 3 root root 4096 1月 1 1970 efi/ drwxr-xr-x 5 root root 1024 8月 30 08:13 grub/ -????????? ? ? ? ? ? initrd.img-4.4.0-92-generic -rw-r--r-- 1 root root 38208259 9月 7 08:25 initrd.img-4.4.0-92-generic.new -rw-r--r-- 1 root root 38214631 9月 7 08:25 initrd.img-4.4.0-93-generic drwx------ 2 root root 12288 4月 21 12:17 lost+found/ -????????? ? ? ? ? ? vmlinuz-4.4.0-92-generic -????????? ? ? ? ? ? vmlinuz-4.4.0-92-generic.efi.signed -????????? ? ? ? ? ? vmlinuz-4.4.0-93-generic -rw------- 1 root root 7099224 8月 30 06:53 vmlinuz-4.4.0-93-generic.efi.signed ``` * $ sudo fsck -n /dev/nvme0n1p2 ``` 一部抜粋 Illegal double indirect block (3213997900) in iノード 42. IGNORED. Illegal triple indirect block (3517100439) in iノード 42. IGNORED. Error while iterating over blocks in iノード 42: Illegal triply indirect block found ``` * 使用用途:仮想サーバーのホスト(GPU passthrough)
回答: 事前対応として、/bootに書き込み可能かどうかをチェック。 /bootで起動に必要な情報が完全にそろっていなかったため、バージョンが被らない古いカーネルをインストールし、成功後、grubでインストールしたカーネルを指定するよう変更。 指定カーネルで起動ができるのを確認したあと、CDからのブートでumountの修復対象を修復指定。 と、いつものやり方で修復し、現状問題なさそうです。 念のため、破損したカーネルの再インストールを行っております。