Mengapa ukuran partisi dan output df berbeda?

16

Saya memiliki partisi / dev / sda1.
Utilitas disk menunjukkan ia memiliki kapasitas 154 GB.
df -h menunjukkan

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

Mengapa hasilnya berbeda? Di mana 31 GB yang hilang?

xralf
sumber
3
Silakan kirim output dari fdisk -l /dev/sda(jalankan sebagai root).
Gilles 'SO- berhenti bersikap jahat'
2
Sistem file apa yang Anda gunakan? Jika ext2 / 3/4 maka Anda dapat menggunakannya tune2fs -l /dev/sda1untuk memeriksanya. Lihatlah jumlah blok dan ukuran blok dan gandakan untuk mendapatkan ukuran sistem file. Juga, fdisk -s /dev/sda1untuk mendapatkan ukuran partisi dalam 1k-blok. Lipat gandakan dengan 1024 untuk mendapatkan ukuran dalam byte. Angka itu seharusnya hanya sedikit lebih besar dari sistem file. Pada partisi ext4 40GB saya, 3072 byte lebih besar. Jika sistem file Anda anehnya lebih kecil, Anda dapat mencoba mengubah ukurannya. Untuk ext2 / 3/4, gunakan resize2fs /dev/sda1. Anda dapat melakukan ini saat menggunakan komputer secara normal.
penguin359
@Gilles sudo fdisk -l / dev / sda shows (Saya hanya memposting partisi sda1, karena yang lain tidak menarik bagi kami). Perangkat Boot Mulai Akhir Blok Sistem Id / dev / sda1 1 18706 150253568 83 Linux
xralf
@ penguin359 Saya memiliki sistem file ext4. jumlah blok = 32668162, ukuran blok = 4096, 32668162 * 4096 = 133808791552, fdisk -s / dev / sda1 * 1024 = 153859653632. Tampaknya anehnya lebih kecil. Bisakah saya mengubah ukurannya tanpa kehilangan data? Apa yang menyebabkannya lebih kecil?
xralf
@ xralf: mengubah ukuran harus aman, saya tidak pernah kehilangan data saat melakukannya. Mungkin sedikit lebih aman untuk melakukannya ke partisi yang tidak di-mount, misalnya dengan live cd. Tapi tetap saja, dapatkan diri Anda cadangan terlebih dahulu. Selalu dapatkan cadangan sebelum melakukan hal-hal utama sys admin.
Faheem Mitha

Jawaban:

25

Salah satu alasan kapasitas partisi dapat berbeda adalah karena beberapa ruang dicadangkan untuk root, jika partisi menjadi penuh. Jika tidak ada ruang yang disediakan untuk root, dan partisi menjadi penuh, sistem tidak dapat berfungsi. Namun, perbedaan ini biasanya dari urutan 1%, sehingga tidak menjelaskan perbedaan dalam kasus Anda. Dari halaman manual untuk df

Jika argumen adalah nama file absolut dari node disk perangkat yang berisi sistem file yang dipasang, df menunjukkan ruang yang tersedia pada sistem file itu daripada pada sistem file yang berisi node perangkat (yang selalu merupakan sistem file root).

Jadi df benar-benar menunjukkan ukuran sistem file Anda, yang biasanya merupakan ukuran perangkat, tetapi ini mungkin tidak benar dalam kasus Anda. Apakah filesystem Anda meluas ke seluruh partisi Anda?

Apakah

resize2fs /dev/sda1

ada bedanya? Perintah ini mencoba meningkatkan sistem file Anda untuk mencakup seluruh partisi. Tetapi pastikan Anda memiliki cadangan jika Anda mencoba ini.

Faheem Mitha
sumber
>> Apakah filesystem Anda meluas ke seluruh partisi? Aku pikir begitu. Ini ext4. <br> Apa yang harus saya backup? Saya tidak memiliki disk sekunder untuk membuat cadangan yang lebih besar.
xralf
@ xralf: (Oke, ini di luar topik dalam hal pertanyaan ini, tapi ...) Jika tidak memiliki cadangan, atur segera. Satu-satunya alternatif cadangan yang baik (dan itu bukan alternatif yang baik) adalah penggunaan sistematis sistem kontrol versi terdistribusi, dan mendorongnya ke beberapa lokasi terpencil. Tapi tentu saja, Anda tidak dapat meletakkan semuanya di bawah kontrol versi misalnya. media. Maaf jika saya menjadi orang yang sibuk.
Faheem Mitha
@ xralf: Saya akan memposting hasil output Anda dalam pertanyaan itu sendiri, lebih mudah dilihat, dan dibaca.
Faheem Mitha
operasi resize2fs cukup aman, tidak perlu cadangan untuk itu (jika Anda memiliki daya yang stabil dan Anda menggunakan perangkat lunak yang stabil). BTW, jumlah blok cadangan default adalah 5% untuk sistem file * ext.
rvs
@ rvs: tidak setuju untuk membuat cadangan. Anda benar tentang 5% setidaknya di Debian. Saya salah mengingat. Tetapi saya tidak tahu apakah itu standar di semua distribusi.
Faheem Mitha
5

Perbedaan utama adalah karena beberapa hal mengatakan 1 kilobyte adalah 1000 byte, dan yang lain mengatakan 1 kilobyte adalah 1024 byte.

Gnome Disk Utility menunjukkan kapasitas menggunakan 1 kilobyte = 1000 byte, karena produsen disk menggambarkan ukuran disk dengan cara ini. Ini artinya kapasitas disk Anda hampir 154.000.000.000 byte .

Di sisi lain, sebagian besar sistem operasi mengatakan 1 kilobyte = 1024 byte. Semua alat menyukai dfdan fdiskmenggunakan konvensi ini. Jadi 154.000.000.000 byte / 1024/1024/1024 = 143,4 GB .

Seperti yang jlliagre tunjukkan dengan benar (dan Gilles menyiratkan ketika meminta fdiskoutput Anda ), utilitas disk memberitahu Anda ukuran seluruh hard disk Anda. Tetapi /dev/sda1satu partisi pada hard disk Anda. Misalnya, hard disk Anda mungkin memiliki beberapa partisi lain di dalamnya seperti partisi 4-8 GB untuk swap (juga dikenal sebagai memori virtual), dan partisi boot yang biasanya sekitar 100 MB.

Anda tidak memposting output fdisk -l /dev/sda, jadi mari kita asumsikan partisi swap Anda adalah 8 GB. Sekarang kita turun ke 135 GB .

Lalu, ada beberapa hal lain yang berkontribusi pada perbedaan.

Sebagai contoh, sistem file menggunakan beberapa partisi disk untuk metadata. Metadata adalah hal-hal seperti nama file, izin file, bagian mana dari partisi yang termasuk file, dan bagian mana dari partisi yang bebas. Di sistem saya, sekitar 2% dari partisi digunakan untuk ini. Dengan asumsi Anda serupa, itu akan membawa ruang kosong ke sekitar 132 GB .

Sistem file juga dapat menyimpan beberapa ruang yang hanya dapat digunakan oleh pengguna root. Di sistem saya, ini adalah 5% dari partisi, jadi dalam kasus Anda, itu berarti kapasitas total sekitar 125 GB .

Angka pastinya tergantung pada apakah Anda menggunakan ext2, ext3, ext4, fat, ntfs, btrfs, dll, dan pengaturan apa yang digunakan saat memformat partisi.

Jika Anda menggunakan ext2 atau ext3, sudo tune2fs -l /dev/sda1dapat membantu memahami ke mana ruang tersebut.

Mikel
sumber
Utilitas disk menunjukkan dengan tepat kapasitas 154 GB (153.859.653.632 byte).
xralf
>> sudo tune2fs -l / dev / sda1 << Parameter mana yang memberi tahu saya ke mana ruangnya?
xralf
2

Mungkin mereka digunakan oleh inode. Beberapa jumlah dapat digunakan oleh MBR.

balki
sumber
1
MBR tidak muncul seperti di silinder 0 (bahkan di partisi pertama, yang sering dimulai di sektor 2048). Namun, ada salinan superblok tersebut. Namun, itu adalah inode. Lihat juga: unix.stackexchange.com/questions/13547/… dan perintah "lsblk / dev / sdX" dan "dumpe2fs -h / dev / sdX"
David Tonhofer
1

sda1 bukan seluruh disk Anda tetapi partisi primer pertama. Anda mungkin telah membuat partisi yang tidak di-mount lainnya yang tidak muncul dalam output df atau hanya memiliki sda1 tidak mengisi semua ruang yang dapat digunakan untuk beberapa alasan atau membuat sistem file tidak menggunakan semua ruang yang tersedia di partisi.

fdisk -l akan memberi tahu Anda seperti apa tabel partisi Anda.

Jlliagre
sumber
Tentu saja. Kita hanya berbicara tentang partisi / dev / sda1, bukan seluruh disk.
xralf
Itu tidak jelas dari pertanyaan Anda saat Anda merujuk ke utilitas disk tanpa menunjukkan hasilnya. Anda harus mengeditnya untuk memperjelasnya. Memberitahu bagaimana Anda membuat sistem file / akan berguna juga.
jlliagre
Bagian yang relevan dari output utilitas disk adalah "kapasitas partisi sda1 = 154 GB".
xralf
Harap edit pertanyaan awal Anda untuk memperjelasnya.
jlliagre