OpenSuse 실행 12.2.
갑자기 루트 분할이 가득 찬 것 같지만 (99 %) 더 이상 파일을 수동으로 제거 할 수 없습니다.
df에 따라 450mb는 여전히 사용 가능하지만 "rm : xxx를 제거 할 수 없음 : 장치에 남은 공간 없음" 파일 시스템은 BTRFS입니다.
btrfsck를 사용하여 FS를 확인하려고 시도했지만 도움이되지 않았습니다.
무엇을해야합니까?
OpenSuse 실행 12.2.
갑자기 루트 분할이 가득 찬 것 같지만 (99 %) 더 이상 파일을 수동으로 제거 할 수 없습니다.
df에 따라 450mb는 여전히 사용 가능하지만 "rm : xxx를 제거 할 수 없음 : 장치에 남은 공간 없음" 파일 시스템은 BTRFS입니다.
btrfsck를 사용하여 FS를 확인하려고 시도했지만 도움이되지 않았습니다.
무엇을해야합니까?
답변:
BTRFS가 파일을 제거하기 전에 약간의 메타 데이터를 할당해야하는 문제가 발생했을 가능성이 큽니다. BTRFS의 약점 중 하나는 공간 부족 상태를 처리하는 것입니다. 이 분야의 행동 개선은 프로젝트의 우선 순위 중 하나입니다.
btrfs 위키에 대한 한 가지 제안은 파일을 제거하는 대신 파일을 클로버하는 것입니다.
#instead of this
rm -f ./some_file
# do this
true >| ./some_file
디렉토리 항목을 변경하지 않고 파일 내용을 제거합니다. 당신이있는 곳을 벗어나면 정상적으로 파일을 삭제할 수 있습니다. 그래도 문제가 발생하면 nodatacow
옵션 으로 일시적으로 다시 마운트하여 쓰기 중 복사 동작을 해제 할 수 있습니다. 그러나 ... 그것이 도움이 될지 확실하지 않습니다.
그러나 일반적으로 BTRFS 파일 시스템을 실행하지 마십시오. 여전히 사전 프로덕션 소프트웨어이며 코너 케이스는 약간 거칠습니다.
나는 같은 오류 메시지에 직면했지만 내 경우 파일 시스템이 가득 찬 것으로보고되지 않았습니다.
user@host:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 2.8G 2.0G 618M 77% /
그러나 BTRFS에 문의하면 실제로 가득 찼습니다.
user@host:/# btrfs fi show
Label: none uuid: {UUID redacted because reasons}
Total devices 1 FS bytes used 1.92GiB
devid 1 size 2.79GiB used 2.79GiB path /dev/sda3
타일러가 제안한 것처럼 모든 파일을 덮어 쓰기조차 불가능했습니다. 내 솔루션은에서 발견 된 http://marc.merlins.org/perso/btrfs/post_2014-05-04_Fixing-Btrfs-Filesystem-Full-Problems.html 사용하여 파일 시스템을 수동으로 리 밸런싱을 실행하는 데 조언한다 btrfs balance start -dusage=55 /path/to/filesystem
.
ZFS를 사용하여 다른 파일을 삭제하면 ZFS 파티션에서 충분한 공간을 확보 한 다음 해당 파일을 삭제할 수있었습니다.