예약된 블록 문제: 파티션 크기가 성공적으로 변경되었지만 OS가 이를 인식하지 못합니다.

예약된 블록 문제: 파티션 크기가 성공적으로 변경되었지만 OS가 이를 인식하지 못합니다.

저는 이중 부팅 시스템을 실행하고 있으며 Linux 배포판은 Ubuntu 14.04입니다.

/dev/sda6저는 GParted를 사용하여 디렉토리가 일반적으로 마운트되는 논리 파티션을 확장했습니다 . /homeGParted 보고서에 따르면 작업이 성공적으로 완료되었습니다. 파티션 크기는 85GiB이며 예상대로 83GiB가 사용되고 2GiB가 사용 가능합니다(d).

그런데 여기에는 두 가지 이상한 점이 있습니다.

  1. 해당 버프는 로그인 후 인식되지 않습니다. 디스크 사용량 확인을 사용하면 df -h보고서 /dev/sda6에 올바르게 마운트된 파티션 크기가 /home85GiB이고 그 중 83GiB가 사용된 것으로 표시됩니다.0사용 가능. 이용률은 100%라고 합니다.

  2. 또 다른 이상한 점은 GUI를 통해 정기적으로 사용자 프로필에 로그인할 수 있다는 것입니다. 그러나 자격 증명이 인식된 후에는 시스템 작동이 중지되고 데스크톱 환경으로 전환되지 않습니다. 정보를 얻으려면 df -h텍스트 터미널에 일반 ID로 로그인하거나 GUI에서 게스트로 로그인해야 합니다. 그런데 데이터가 손상된 것 같지 않습니다.

이 상황을 어떻게 해결할 수 있나요? 목표는 파티션 크기의 증가를 운영 체제에서 완전히 사용할 수 있도록 하는 것입니다. 도와주셔서 감사합니다.

답변1

아마도 ext이러한 파일 시스템(일반적으로 기본 Linux 파일 시스템 ext4) 중 하나를 사용하고 있을 것입니다. 대부분의 경우 생성 시 이라는 특정 버퍼를 사용하여 생성됩니다 reserved blocks. 이 예약된 공간은 시스템 프로세스와 루트에 의해서만 기록될 수 있으므로 사용자 디스크가 가득 차는 것으로부터 운영 체제를 보호합니다.

주요 목적 df은 총 사용 가능한 디스크 공간의 양을 표시하는 것입니다. (사용자가) 사용하는 공간도 표시하지만 예약된 공간은 표시하지 않습니다.

기본적으로 이 버퍼는 전체 디스크의 5%를 차지합니다. 그런 버퍼가 있는지 확인할 수 있습니다 sudo tune2fs -l /dev/sda6 | grep Reserved. 입력을 통해 sudo tune2fs -l /dev/sda6 | grep [bB]locksB의 예약된 블록 수와 블록 크기를 읽어 구조가 차지하는 파티션 공간을 확인할 수도 있습니다. 이는 시스템이 85GiB로 표시되지만 83개만 사용되고 무료는 0개만 사용됨을 설명합니다.

꼭 필요한 경우 버퍼를 더 낮은 값으로 설정할 수 있습니다 sudo tune2fs -m 2 /dev/sda6(2는 백분율 샘플 값이고 기본값은 5입니다).

더 나은 옵션은 실제로 크기를 조정하여 안전할 만큼 충분한 여유 디스크 공간을 확보하는 것입니다. 85GiB 중 2GiB는 2.35%에 불과합니다. 이는 많지 않으며 대부분의 경우 비교적 빨리 채워집니다. 공간 사용량이 83GiB에서 안정될 것이라고 확신하는 경우 tune2fs를 사용하여 안전을 위해 0%를 예약할 수 있지만 디스크가 가득 차면(85GiB까지) 모든 내용을 기록할 수 없으며 시스템이 충돌 그리고 수정하기가 더 어렵습니다.

5% 안전마진은 상대적으로 합리적인 안전마진입니다. 따라서 이 경우에는 긴급 상황에 대비해 파티션을 최소 90GiB, 어쩌면 100GiB 이상으로 설정합니다. 디스크 공간은 저렴하지만, 디스크가 가득 차서 발생하는 문제를 해결하는 데 드는 시간은 훨씬 더 비쌀 수 있습니다.

대답이 문제추론에 대한 더 많은 통찰력을 제공합니다.

답변2

상황을 더 잘 설명하려면 일부 언어적 혼란을 제거해야 합니다.고팟,df그리고2fs 조정디스크 공간에 대한 약간 다른 개념에는 동일하거나 유사한 단어를 사용하십시오.

나는 의사 방정식에 대한 이해를 다시 작성하고 다음 연산자를 오버로드했습니다.

'=' means 'corresponds to'
'@' means 'according to'

나는 df -h이 로우 프로파일을 사용하고 더욱 유지하기 시작했습니다. tune2fs -l블록 수는 일반적으로 적절한 구문에 따라 블록 크기와 함께 반환됩니다 . 이를 곱하면 디스크 공간 크기를 얻을 수 있습니다. 디스크 공간 측정값이 동일한 밑수(2 또는 10)로 표시되는지 확인하십시오.

먼저, 다음과 같은 관점에서고팟

size @ gparted = size @ df = block count * block size @ tune2fs
unused @ gparted = free blocks * block size @ tune2fs 
used @ gparted = used @ df = (block count - free blocks) * block size @ tune2fs

지금까지는 매우 직관적입니다.

그런 다음df

size @ df = size @ gparted = block count @ tune2fs 
used @ df = used @ gparted = (block count - free blocks) *block size @ tune2fs
available @ df = max[(free blocks - reserved block count) * block size @ tune2fs, 0]

그래서,쓸 수 있는@는 df다음과 다르다는 뜻무료tune2fs@그리고사용되지 않음@ gparted.

요약하자면, 사용 가능한 공간 df측정값은과도한총 공간( 에서 여유 공간 tune2fs또는 사용되지 않은 공간 으로 표시) gparted이 une2fs에서 예약한 할당량을 초과합니다. 초과량이 0이면 올바른 작업을 위해 예약된 디스크 공간이 부족함을 나타냅니다.

관련 정보