원시 QEMU 이미지 크기를 조정할 때 fdisk가 "디스크 동기화"에서 중단됩니다.

원시 QEMU 이미지 크기를 조정할 때 fdisk가 "디스크 동기화"에서 중단됩니다.

저는 원시 QEMU 이미지의 파티션 크기를 조정하기 위해 fdisk를 사용하고 있습니다. 새 파티션 테이블에 쓸 때 "디스크 동기화 중"에서 멈춥니다.

이미지 파일을 편집하는 데 루트가 필요하지 않기 때문에 루트가 아닌 사용자로 fdisk를 실행하고 있습니다.

"디스크 동기화"가 이렇게 중단되는 원인은 무엇입니까?

답변1

"디스크 동기화 중" 메시지를 인쇄한 후 fdisk는 sync(2) 시스템 호출을 호출하여 파일 메타데이터 및 데이터에 대한 버퍼링된 모든 수정 사항이 기본 파일 시스템에 기록되도록 합니다. 이 작업은 다소 시간이 걸릴 것으로 예상되지만 영원히 중단되어서는 안 됩니다. 그렇다면 /proc/FDISK_PID/stack에서 커널의 어떤 함수가 걸려 있는지 확인할 수 있습니다.

문제는 이미지 파일(실제 장치가 아님)을 처리할 때 fdisk가 sync()를 호출하는 이유입니다. IMHO, 필요하지 않습니다.

답변2

가능한 해결책:
저도 같은 문제를 겪었고 해결책은 sfdisk대신 를 사용하는 것이었습니다 fdisk. fdisk가 sfdisk로 할 수 있는 모든 것을 할 수 있다는 것을 알게 될 것입니다.

예를 들어 다음과 같이 하지 마세요.

  fdisk $image <<FDISK
p
d
$partition
n
p
$partition
$start
p
w
FDISK

나는 그랬다:

echo ",+," | sfdisk -N2 $image

갑자기 동기화 문제가 발생하지 않았습니다.

관련 정보