시스템 충돌 및 하드 리셋 후 읽기 전용 파일 시스템 종료(20.04.2 서버, VM)

시스템 충돌 및 하드 리셋 후 읽기 전용 파일 시스템 종료(20.04.2 서버, VM)

어제 내 시스템이 충돌하여 2개의 가상 머신을 실행하는 동안 호스트 머신에서 강제 재설정을 수행해야 했습니다. 첫 번째 컴퓨터는 살아남았고 두 번째 컴퓨터는 읽기 전용 모드로 전환되었습니다. VM에 로그인하면 다음 메시지가 표시됩니다.

Unable to setup logging. [Errno 30] Read-only file system: '/var/log/landscape/sysinfo.log' run-parts: /etc/update-mot.d/50-landscape-sysinfo exited with return code 1 /usr/lib/ubuntu-release-upgrader/release-upgrade-motd: 31: cannot create /var/lib/ubuntu-release-upgrader/release-upgrade-available: Read-only file system mktemp: failedd to create file via template '/var/lib/update-notifier/tmp.XXXXXXXXXX': Read-only file system run-parts: /etc/update-motd.d/95-hwe-eol exited with return code 1 /usr/lib/update-notifier/update-motd-fsck-at-reboot: 38: cannot create /var/lib/update-notifier/fsck-at-reboot: Read-only file system

호스트에서 디스크 이미지 파일을 확인했는데, 이 경우 KVM과 함께 사용하는 qcow2 파일입니다.

sudo qemu-img check ubuntu204.qcow2

그 결과는 다음과 같습니다.

No errors were found on the image. 245760/245760 = 100.00% allocated, 0.00% fragmented, 0.00% compressed clusters Image end offset: 16108814336

나는 이것이 파일 시스템을 보호하기 위한 강제 상태이고 디스크를 스캔하고 모든 것이 정상이면 읽기 전용 모드를 종료할 수 있다는 것을 읽었습니다. 읽기 전용 모드에서 tty의 다음 파티션 테이블을 사용하여 이를 어떻게 수행합니까? ?

loop0                         0
loop1                         0
loop2                         0
loop3                         0
loop4                         0
loop5                         0
|-sda                         0   15G    0 disk
  |-sda1                      0   1M     0 part
  |-sda2                      0   1G     0 part /boot
  |-sda3                      0   14G    0 part
    |-ubuntu--vg-ubuntu--lv   0   14G    0 lvm /
|-sr0                         1   1024M  0 rom

경고에서 문제가 있을 수 있다고 의심됩니다. unattended-upgrades또한 두 시스템의 무결성을 보장하기 위해 권장하는 추가 검사에 대한 추가 입력에도 관심이 있습니다.

답변1

호스트에서 fsck를 사용하여 qcow2 디스크 이미지 파일을 복구하는 방법

네트워크 블록 장치 모듈 로드:

sudo modprobe nbd max_part=8

전원 끄기 기계:

sudo virsh destroy virtual-machine

디스크 이미지 연결:

sudo qemu-nbd --connect=/dev/nbd0 /var/lib/libvirt/images/virtual-machine.qcow2

디스크 확인: (이제 디스크가 호스트에 마운트되어 노틸러스/탐색기에서 볼 수 있습니다.)

sudo fsck /dev/nbd0p2

나에게는 nbd-dm3과 nbd0p2를 모두 스캔한 두 개의 추가 드라이브가 마운트되어 있습니다. 여기에 모두 예라고 대답한 예상 출력의 예가 있습니다.

fsck from util-linux 2.25.2
e2fsck 1.42.12 (29-Aug-2014)
/dev/nbd0p1: recovering journal
/dev/nbd0p1 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Inodes that were part of a corrupted orphan linked list found.  Fix<y>? yes
Inode 274 was part of the orphaned inode list.  FIXED.
Inode 132276 was part of the orphaned inode list.  FIXED.
Deleted inode 142248 has zero dtime.  Fix<y>? yes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences:  -603674 -623174 +(689342--689343)
Fix<y>? yes
Free blocks count wrong for group #18 (15076, counted=15077).
Fix<y>? yes
Free blocks count wrong for group #19 (11674, counted=11675).
Fix<y>? yes
Free blocks count wrong (632938, counted=670871).
Fix<y>? yes
Inode bitmap differences:  -274 -132276 -142248
Fix<y>? yes
Free inodes count wrong for group #0 (52, counted=53).
Fix<y>? yes
Free inodes count wrong for group #16 (99, counted=100).
Fix<y>? yes
Free inodes count wrong for group #17 (519, counted=520).
Fix<y>? yes
Free inodes count wrong (204392, counted=204599).
Fix<y>? yes

/dev/nbd0p1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/nbd0p1: 101833/306432 files (0.2% non-contiguous), 553321/1224192 blocks

장치 연결 해제:

sudo qemu-nbd --disconnect /dev/nbd0

/dev/nbd0 연결이 끊어졌습니다.

기계를 시작하고 작동하는지 확인하십시오.

virsh start virtual-machine

원천:https://gist.github.com/islander/8517685e3a9f7e0e1d458033710f0893

관련 정보