경고: 다중 장치 BTRFS 파일 시스템의 크기를 조정하는 데 GParted를 사용하지 마십시오!

경고: 다중 장치 BTRFS 파일 시스템의 크기를 조정하는 데 GParted를 사용하지 마십시오!

2개의 500GB 하드 드라이브가 포함된 BTRFS RAID1 어레이, 오류 없음. 이것은 루트 파일 시스템이므로 각 드라이브에는 3개의 파티션이 있습니다: 1 = /boot(ext4), 2 = /(btrfs), 3(swap)

/boot는 ext4입니다. /boot가 btrfs 파일 시스템(새 커널이 설치되었지만 grub 구성이 업데이트되지 않음)인 경우 커널 업그레이드가 항상 작동하지 않기 때문입니다.

이제 이미지가 더 작은 드라이브로 이동되었으며 새 드라이브는 120GB이므로 btrfs 파일 시스템의 크기를 조정해야 합니다. 예를 들어 GParted를 사용하여 두 개의 btrfs 파티션 크기를 조정할 수 있습니다. 크기를 조정한 후 파티션 정보가 있는 MBR을 dd if=/dev/sda of=/dev/sdb bs=512 count=1btrfs 파티션( )과 함께 기존 500GB 드라이브에서 새 120GB 드라이브( )로 복사할 수 있습니다 dd if=/dev/sda2 of=/dev/sdb2. (120GB 미만으로 이동해야 하는 스왑 파티션은 무시합니다.)

새 120GB 드라이브를 사용하면 시스템이 문제 없이 부팅되지만 오류 메시지(dmesg)가 기록됩니다.

BTRFS: bytenr 274877906944에 대한 슈퍼 버퍼 헤더를 가져올 수 없습니다.

그리고 스크러빙에서 "슈퍼" 오류가 발견되었습니다(그러나 데이터 오류는 없음).

"오류 세부정보: super=1"

이 오류로 인해 데이터가 손상될 위험이 있습니까?
이 문제를 어떻게 해결하나요?

274877906944는 256GB이고 이전 btrfs 파티션은 >256GB이고 새 btrfs 파티션은 <256GB이므로 시스템이 256GB 슈퍼 블록을 찾는 것 같습니다.

답변1

경고: 다중 장치 BTRFS 파일 시스템의 크기를 조정하는 데 GParted를 사용하지 마십시오!

데이터 손실이 발생할 수 있습니다!

GParted가 범인인 것 같습니다. 분명히 다중 장치 btrfs 파일 시스템의 크기를 조정하는 방법을 모르고 실행되지만 및 을 사용하여 각 장치를 btrfs filesystem resize처리하지 않습니다 .resize 1:49gresize 2:49g

그것은 다음과 같이 btrfs filesystem show말합니다 :

Total devices 2 FS bytes used 40.95GiB
devid    1 size 50.00GiB used 43.03GiB path /dev/sda2
devid    2 size 439.45GiB used 43.03GiB path /dev/sdb2

분명히 GParted는 두 번째 장치의 파일 시스템 크기를 조정하지 않았으므로 Btrfs는 여전히 500GB 파일 시스템이라고 생각합니다.

어느 시점에서 Btrfs는 디스크 외부의 데이터 읽기/쓰기를 시도합니다. 이로 인해 손상이 발생할 수 있으며 전체 파일 시스템을 쓸모 없게 만들 수도 있습니다.


고정시키다

먼저 라이브 시스템을 부팅하여 해당 파티션보다 큰 파일 시스템에서 실행할 때 시스템 손상 위험을 줄입니다.

파일 시스템을 마운트합니다.

mount /dev/sda2 /mnt/tmp

반올림 오류를 방지하려면 먼저 두 번째 장치를 50GB - 1GB = 49GB로 축소하세요.

btrfs filesystem resize 2:49g /mnt/tmp

50GB 파티션을 채우도록 크기를 조정합니다.

btrfs filesystem resize 2:max /mnt/tmp

확인하세요 btrfs filesystem show. 두 장치의 크기가 모두 정확해야 합니다.

devid    1 size 50.00GiB used 43.03GiB path /dev/sda2
devid    2 size 50.00GiB used 43.03GiB path /dev/sdb2

제거하고 재부팅하면 오류가 사라집니다.

이렇게 좋지 않은 상태에서 시스템이 아무런 손상 없이 실행되었다면 이제 파일 시스템은 정상 상태일 것입니다.

(이 문제를 해결하는 데 도움을 준 Heiling에게 감사드립니다.)

관련 정보