
今日私はブートパーティションを破壊しました。バックアップのため、通常問題はありませんが、もはやパーティションに書き込むことはできません。
root@hades ~ # touch /boot/a
touch: cannot touch '/boot/a': Structure needs cleaning
dmesgは以下を示しています:
[317873.920810] EXT4-fs error (device md2): ext4_find_dest_de:1932: inode #2: block 518: comm touch: bad entry in directory: rec_len is smaller than minimal - offset=0, inode=0, rec_len=0, name_len=0, size=1024
デバイスを正常にマウント解除した後もfsckを実行できません。
root@hades ~ # umount /boot
root@hades ~ # e2fsck /dev/md2
e2fsck 1.45.5 (07-Jan-2020)
/dev/md2 is in use.
e2fsck: Cannot continue, aborting.
root@hades ~ # fsck.ext4 /dev/md2
e2fsck 1.45.5 (07-Jan-2020)
/dev/md2 is in use.
e2fsck: Cannot continue, aborting.
パーティションを再フォーマットまたは削除することはできません。
root@hades ~ # wipefs /dev/md2
DEVICE OFFSET TYPE UUID LABEL
md2 0x438 ext4 2112045a-2e84-4c69-8c67-d76e8ad7a13a boot
root@hades ~ # wipefs -a /dev/md2
wipefs: error: /dev/md2: probing initialization failed: Device or resource busy
root@hades ~ # mkfs.ext4 -L boot /dev/md2
mke2fs 1.45.5 (07-Jan-2020)
/dev/md2 contains a ext4 file system labelled 'boot'
last mounted on /boot on Fri Sep 18 21:33:34 2020
Proceed anyway? (y,N) y
/dev/md2 is apparently in use by the system; will not make a filesystem here!
また、mdam配列がwhile raid配列が失敗するように設定することを防ぐことはできません。
root@hades ~ # mdadm --stop /dev/md2 --force
mdadm: Cannot get exclusive access to /dev/md2:Perhaps a running process, mounted filesystem or active volume group?
root@hades ~ # mdadm /dev/md2 --fail /dev/nvme0n1p2 --remove /dev/nvme0n1p2
mdadm: set /dev/nvme0n1p2 faulty in /dev/md2
mdadm: hot removed /dev/nvme0n1p2 from /dev/md2
root@hades ~ # mdadm /dev/md2 --fail /dev/nvme1n1p2 --remove /dev/nvme1n1p2
mdadm: set device faulty failed for /dev/nvme1n1p2: Device or resource busy
mdadm --add /dev/md2 /dev/nvme0n1p2
root@hades ~ # mdadm /dev/md2 --fail /dev/nvme1n1p2 --remove /dev/nvme1n1p2
mdadm: set /dev/nvme1n1p2 faulty in /dev/md2
mdadm: hot removed /dev/nvme1n1p2 from /dev/md2
root@hades ~ # mdadm /dev/md2 --fail /dev/nvme0n1p2 --remove /dev/nvme0n1p2
mdadm: set device faulty failed for /dev/nvme0n1p2: Device or resource busy
fusionrまたはlsofは、実際にはカーネルスレッドを除くすべてのプロセスを保護できるようになりました。
root@hades ~ # lsof | grep md2
md2_raid1 262 root cwd DIR 9,4 4096 2 /
md2_raid1 262 root rtd DIR 9,4 4096 2 /
md2_raid1 262 root txt unknown /proc/262/exe
jbd2/md2- 599 root cwd DIR 9,4 4096 2 /
jbd2/md2- 599 root rtd DIR 9,4 4096 2 /
jbd2/md2- 599 root txt unknown /proc/599/exe
root@hades ~ # fuser -v /dev/md2
root@hades ~ # fuser -v /dev
USER PID ACCESS COMMAND
/dev: root kernel mount /dev
root 57 .rc.. kdevtmpfs
LVMを使用せず、ユーザースペースもインストールされていません。
root@hades ~ # vgs
Command 'vgs' not found, but can be installed with:
apt install lvm2
mdadm RAIDがきれいに見えます。
root@hades ~ # mdadm -D /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Wed Jul 17 22:22:07 2019
Raid Level : raid1
Array Size : 523712 (511.44 MiB 536.28 MB)
Used Dev Size : 523712 (511.44 MiB 536.28 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Sep 22 14:30:52 2020
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : rescue:boot
UUID : b8cce71f:11cb0913:e75f8623:0846cd86
Events : 176
Number Major Minor RaidDevice State
3 259 2 0 active sync /dev/nvme0n1p2
2 259 9 1 active sync /dev/nvme1n1p2
私はUbuntu 20.04を実行しています。
Linux hades 5.4.0-47-generic #51-Ubuntu SMP Fri Sep 4 19:50:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linu
システムが起動しないため、サーバーを再起動できません。現在、コンピュータに物理的にアクセスできません。
systemd、ssh、polkit、rsyslog、および mdadm モニターを除くすべてのサービスを終了しました。
このデバイスを使用するソースをどのように識別しますか?
答え1
最近同じ問題が発生しました。 snapで作成されたループバックデバイスを削除した後に消えました。具体的には以下を行った。
- すべてのスナップショットを無効にする(
snap list
スナップショットを見た後のsnap disable xyz
各スナップショットの表示) - 停止しました
snapd
(systemctl stop snapd
) - スナップで作成されたループバックデバイスを手動でアンマウントします(
lsblk
これを表示してumount /snap/xyz/123
マウント解除するため)。
上記のすべての手順が必要か、スナップを削除するより良い方法があるかどうかはわかりません。