파티션 크기와 df 출력이 다른 이유는 무엇입니까?


16

/ dev / sda1 파티션이 있습니다.
디스크 유틸리티는 용량이 154GB임을 보여줍니다.
df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             123G  104G   14G  89% /
devtmpfs             1006M  280K 1006M   1% /dev
none                 1007M  276K 1006M   1% /dev/shm
none                 1007M  216K 1006M   1% /var/run
none                 1007M     0 1007M   0% /var/lock
none                 1007M     0 1007M   0% /lib/init/rw

결과가 다른 이유는 무엇입니까? 누락 된 31GB는 어디에 있습니까?


3
fdisk -l /dev/sda(루트로 실행) 의 출력을 게시하십시오 .
Gilles 'SO- 악한 중지'

2
어떤 파일 시스템을 사용하고 있습니까? ext2 / 3 / 4 인 경우이를 tune2fs -l /dev/sda1검사하는 데 사용할 수 있습니다 . 블록 수와 블록 크기를보고 곱하여 파일 시스템 크기를 얻습니다. 또한 fdisk -s /dev/sda1파티션 크기를 1k 블록으로 가져옵니다. 크기를 바이트 단위로 얻으려면 1024를 곱하십시오. 이 숫자는 파일 시스템보다 약간 커야합니다. 내 40GB ext4 파티션에서 3072 바이트 더 큽니다. 파일 시스템이 더 작 으면 크기를 조정할 수 있습니다. ext2 / 3 / 4의 경우을 사용하십시오 resize2fs /dev/sda1. 컴퓨터를 정상적으로 사용하는 동안이 작업을 수행 할 수 있습니다.
penguin359

@Gilles sudo fdisk -l / dev / sda shows (다른 사람들은 우리에게 관심이 없기 때문에 sda1 파티션 만 게시하고 있습니다). 장치 부팅 시작 끝 블록 ID 시스템 / dev / sda1 1 18706 150253568 83 Linux
xralf

@ penguin359 ext4 파일 시스템이 있습니다. 블록 수 = 32668162, 블록 크기 = 4096, 32668162 * 4096 = 133808791552, fdisk -s / dev / sda1 * 1024 = 153859653632 이상하게 작은 것 같습니다. 데이터 손실없이 크기를 조정할 수 있습니까? 더 작은 원인은 무엇입니까?
xralf

@ xralf : 크기 조정이 안전해야합니다. 데이터를 잃어 버린 적이 없습니다. 라이브 CD와 같이 마운트 해제 된 파티션에서 작업하는 것이 약간 더 안전 할 수 있습니다. 그러나 여전히 자신을 백업하십시오. 주요 시스템 관리자 작업을 수행하기 전에 항상 백업을 받으십시오.
Faheem Mitha

답변:


25

파티션 용량이 다를 수있는 한 가지 이유는 파티션이 가득 찼을 때 일부 공간이 루트 용으로 예약되어 있기 때문입니다. 루트 용으로 예약 된 공간이없고 파티션이 가득 차면 시스템이 작동 할 수 없습니다. 그러나이 차이는 대개 1 % 정도이므로 사례의 차이를 설명하지 않습니다. df 매뉴얼 페이지에서

인수가 마운트 된 파일 시스템을 포함하는 디스크 장치 노드의 절대 파일 이름 인 경우, df는 장치 노드를 포함하는 파일 시스템 (항상 루트 파일 시스템 임)이 아니라 해당 파일 시스템에서 사용 가능한 공간을 표시합니다.

따라서 df는 실제로 파일 시스템의 크기를 보여줍니다.이 크기는 일반적으로 장치의 크기이지만 실제로는 그렇지 않을 수 있습니다. 파일 시스템이 파티션 전체로 확장됩니까?

않습니다

resize2fs /dev/sda1

어떤 차이가 있습니까? 이 명령은 파일 시스템을 증가시켜 전체 파티션을 덮습니다. 그러나 시도하면 백업이 있는지 확인하십시오.


>> 파일 시스템이 전체 파티션으로 확장됩니까? 나도 그렇게 생각해. ext4입니다. <br> 무엇을 백업해야합니까? 더 큰 백업을 수행 할 보조 디스크가 없습니다.
xralf

@xralf : (오케이,이 질문의 관점에서 논외이지만, ...) 백업이 없다면 즉시 설정하십시오. 좋은 백업의 유일한 대안 (그리고 좋은 대안은 아님)은 분산 버전 제어 시스템을 체계적으로 사용하여 원격 위치로 밀어내는 것입니다. 그러나 물론 모든 것을 버전 제어하에 둘 수는 없습니다. 미디어. 내가 바쁜 사람이라면 실례합니다.
Faheem Mitha

@ xralf : 출력 결과를 질문 자체에 게시하고 더 쉽게보고 읽을 수 있습니다.
Faheem Mitha

resize2fs는 매우 안전한 작업이므로 백업 할 필요가 없습니다 (안정적인 전원이 있고 안정적인 소프트웨어를 사용하는 경우). BTW, 기본 예약 블록 수는 ext * 파일 시스템의 5 %입니다.
rvs

@rvs : 백업에 동의하지 않습니다. 당신은 적어도 데비안에 5 % 정도 옳습니다. 나는 잘못 기억하고 있었다. 그러나 그것이 모든 배포판에서 표준인지는 모르겠습니다.
Faheem Mitha

5

주요 차이점은 1 킬로바이트는 1000 바이트이고 다른 것들은 1 킬로바이트는 1024 바이트라고 말하기 때문입니다.

디스크 제조업체는 디스크 크기를 이런 식으로 설명하기 때문에 Gnome Disk Utility는 1KB = 1000 바이트를 사용하는 용량을 보여줍니다. 이는 디스크 용량이 154,000,000,000 바이트에 가깝다는 것을 의미합니다 .

반면, 대부분의 운영 체제는 1 킬로바이트 = 1024 바이트입니다. 모든 도구는 이 규칙을 좋아 df하고 fdisk사용합니다. 그래서 154,000,000,000 바이트 / / 1,024 / 1,024 = 1,024 143.4 GB .

jlliagre가 올바르게 지적한대로 (길은 fdisk출력을 요청할 때 암시 함 ) 디스크 유틸리티는 전체 하드 디스크의 크기를 알려줍니다. 그러나 /dev/sda1하드 디스크의 단일 파티션입니다. 예를 들어, 하드 디스크에는 스왑을위한 4-8GB 파티션 (가상 메모리라고도 함) 및 일반적으로 약 100MB의 부팅 파티션과 같은 다른 파티션이있을 수 있습니다.

의 출력을 게시하지 않았 fdisk -l /dev/sda으므로 스왑 파티션이 8GB라고 가정합니다. 이제 우리는 아래로있어 GB (135) .

그런 다음 차이에 기여하는 다른 것들이 있습니다.

예를 들어, 파일 시스템은 메타 데이터에 일부 디스크 파티션을 사용합니다. 메타 데이터는 파일 이름, 파일 권한, 파티션의 어떤 부분이 어떤 파일에 속하는지, 그리고 파티션의 어떤 부분이 비어 있는지와 같은 것입니다. 내 시스템에서는 약 2 %의 파티션이 사용됩니다. 당신과 비슷하다고 가정하면 여유 공간이 약 132GB 로 줄어 듭니다 .

파일 시스템은 루트 사용자 만 사용할 수있는 공간을 예약 할 수도 있습니다. 내 시스템에서는 파티션의 5 %이므로 귀하의 경우 총 용량은 약 125GB 입니다.

정확한 숫자는 ext2, ext3, ext4, fat, ntfs, btrfs 등을 사용하는지 여부와 파티션을 포맷 할 때 사용 된 설정에 따라 다릅니다.

ext2 또는 ext3을 사용 sudo tune2fs -l /dev/sda1하는 경우 공간이 어디로 가고 있는지 이해하는 데 도움이 될 수 있습니다.


디스크 유틸리티는 정확히 154GB (153,859,653,632 바이트)의 용량을 보여줍니다.
xralf

>> sudo tune2fs -l / dev / sda1 << 공간이 어디로 가고 있는지 알려주는 매개 변수는 무엇입니까?
xralf

2

아마도 그들은 inode에 의해 사용됩니다. MBR에 의해 일부 금액이 소진 될 수 있습니다.


1
MBR은 실린더 0에있는 것처럼 나타나지 않습니다 (첫 번째 파티션조차도 아니고 섹터 2048에서 시작 함). 그러나 수퍼 블록의 사본이 있습니다. 여전히 아이 노드입니다. 참조 : unix.stackexchange.com/questions/13547/... 및 명령 "lsblk는 / dev / SDX"와 "dumpe2fs -h는 / dev / SDX"
데이비드 Tonhofer

1

sda1은 전체 디스크가 아니라 첫 번째 기본 파티션입니다. df 출력에 표시되지 않거나 다른 이유로 sda1이 모든 사용 가능한 공간을 채우지 않거나 파일 시스템이 파티션에서 사용 가능한 공간을 모두 사용하지 않도록하는 마운트되지 않은 다른 파티션을 작성했을 수 있습니다.

fdisk -l 파티션 테이블의 모양을 알려줍니다.


물론이야. 우리는 전체 디스크가 아닌 / dev / sda1 파티션에 대해서만 이야기하고 있습니다.
xralf

출력을 표시하지 않고 디스크 유틸리티를 참조 할 때 귀하의 질문에서 분명하지 않았습니다. 명확하게하려면 편집해야합니다. / 파일 시스템을 어떻게 만들 었는지 알려주는 것도 유용합니다.
jlliagre

디스크 유틸리티 출력의 관련 부분은 "sda1 파티션 용량 = 154GB"입니다.
xralf

명확하게하기 위해 원래 질문을 편집하십시오.
jlliagre
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.