fsck를 실행할 수 없거나 장치를 포맷할 수 없습니다. 장치가 사용 중입니다.

fsck를 실행할 수 없거나 장치를 포맷할 수 없습니다. 장치가 사용 중입니다.

오늘 저는 부팅 파티션을 파괴했습니다. 백업으로 인해 일반적으로 문제가 없지만 더 이상 파티션에 쓸 수 없습니다.

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

저는 우분투 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으로 생성된 루프백 장치를 제거한 후 사라졌습니다. 구체적으로 다음을 수행했습니다.

  1. 모든 스냅샷 비활성화( snap list스냅샷을 본 후 snap disable xyz각 스냅샷 보기)
  2. 중지됨 snapd( systemctl stop snapd)
  3. 스냅으로 생성된 루프백 장치를 수동으로 마운트 해제합니다( lsblk이를 보고 umount /snap/xyz/123마운트 해제하기 위해).

위의 모든 단계가 필요한지 아니면 스냅을 제거하는 더 좋은 방법이 있는지 잘 모르겠습니다.

관련 정보