Чому розмір розділу та вихідний сигнал df відрізняються?


16

У мене є розділ / dev / sda1.
Дискова утиліта показує, що вона ємністю 154 Гб.
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

Чому результати різні? Де бракує 31 ГБ?


3
Будь ласка, опублікуйте результат fdisk -l /dev/sda(запустити як root).
Жил "ТАК - перестань бути злим"

2
Яку файлову систему ви використовуєте? Якщо це ext2 / 3/4, ви можете використовувати його tune2fs -l /dev/sda1для вивчення. Подивіться на кількість блоків та розмір блоку та помножте їх, щоб отримати розмір файлової системи. Крім того, fdisk -s /dev/sda1щоб отримати розмір розділу в 1k-блоках. Помножте це на 1024, щоб отримати розмір у байтах. Це число повинно бути трохи більше, ніж файлова система. У моєму розділі 40 Гб ext4 на 3072 байти більше. Якщо ваша файлова система дивно менша, ви можете спробувати змінити її розмір. Для ext2 / 3/4 використовуйте resize2fs /dev/sda1. Це можна зробити під час звичайного використання комп’ютера.
penguin359

@Gilles sudo fdisk -l / dev / sda показує (я публікую лише розділ sda1, тому що інші нас не цікавлять). Device Boot Start End Blocks Id System / dev / sda1 1 18706 150253568 83 Linux
xralf

@ penguin359 У мене файлова система ext4. кількість блоків = 32668162, розмір блоку = 4096, 32668162 * 4096 = 133808791552, fdisk -s / dev / sda1 * 1024 = 153859653632. Здається, це дивно менше. Чи можу я змінити розмір без втрати даних? Що спричинило, що воно менше?
xralf

@xralf: зміни розміру повинні бути безпечними, я ніколи не втрачав даних, роблячи це. Це може бути дещо безпечніше зробити це на відремонтованому розділі, наприклад, на живому компакт-диску. Але все ж, спочатку придбайте собі резервну копію. Завжди отримуйте резервну копію перед тим, як робити основні матеріали системного адміністратора.
Faheem Mitha

Відповіді:


25

Однією з причин ємності розділів може відрізнятись те, що деякий простір зарезервовано під корінь, у разі якщо розділи стануть повними. Якщо для кореня немає місця, а розділи стають повноцінними, система не може функціонувати. Однак ця різниця зазвичай становить близько 1%, так що це не пояснює різницю у вашому випадку. Зі сторінки man для df

Якщо аргументом є абсолютна назва файлу вузла дискового пристрою, що містить змонтовану файлову систему, df показує простір, доступний у цій файловій системі, а не у файловій системі, що містить вузол пристрою (що завжди є кореневою файловою системою).

Тож df дійсно показує розмір вашої файлової системи, який зазвичай є розміром пристрою, але це може бути невірно у вашому випадку. Чи поширюється ваша файлова система на весь ваш розділ?

Чи

resize2fs /dev/sda1

щось змінити? Ця команда намагається збільшити вашу файлову систему, щоб охопити весь розділ. Але переконайтеся, що у вас є резервна копія, якщо ви спробуєте це.


>> Чи поширюється ваша файлова система на весь розділ? Я думаю так. Це ext4. <br> Що мені робити резервну копію? У мене немає жодного вторинного диска для створення більшої резервної копії.
xralf

@xralf: (Гаразд, це поза темою щодо цього питання, але ...) Якщо у вас немає резервної копії, встановіть її негайно. Єдиною альтернативою хорошого резервного копіювання (і це не є хорошою альтернативою) є систематичне використання розподіленої системи управління версіями та переміщення її в якесь віддалене місце. Але звичайно, ви не можете поставити все під контроль версій, наприклад. ЗМІ. Вибачте, будь ласка, якщо я зайнятий.
Faheem Mitha

@xralf: Я б опублікував ваші результати результатів у самому запитанні, його легше бачити та читати.
Faheem Mitha

resize2fs - це досить безпечна робота, для цього не потрібно створювати резервні копії (якщо у вас стабільна потужність і ви використовуєте стабільне програмне забезпечення). BTW, за замовчуванням кількість зарезервованих блоків становить 5% для файлових систем ext *.
rvs

@rvs: не погоджуюсь із резервною копією. Ви маєте рацію приблизно на 5% принаймні на Debian. Я спогадувався. Але я не знаю, чи це стандарт у всіх дистрибутивах.
Faheem Mitha

5

Основна відмінність полягає в тому, що одні речі кажуть, що 1 кілобайт - це 1000 байт, а інші - 1 кілобайт - 1024 байти.

Gnome Disk Utility показує ємність, використовуючи 1 кілобайт = 1000 байт, оскільки виробники дисків таким чином описують розміри дисків. Це означає, що ємність вашого диска близько 154 000 000 000 байт .

З іншого боку, більшість операційних систем кажуть, що 1 кілобайт = 1024 байти. Всі інструменти люблять dfі fdiskвикористовують цю умову. Отже 154 000 000 000 байт / 1024/1024/1024 = 143,4 ГБ .

Як справедливо зазначає jlliagre (а Джіллес має на увазі, коли запитує ваш fdiskвихід), утиліта диска повідомляє вам розмір всього вашого жорсткого диска. Але /dev/sda1це один розділ на вашому жорсткому диску. Наприклад, на вашому жорсткому диску, ймовірно, є на ньому інші розділи, такі як розділ на 4–8 ГБ для підкачки (також відомий як віртуальна пам'ять) та завантажувальний розділ, який зазвичай становить близько 100 Мб.

Ви не опублікували вихід fdisk -l /dev/sda, тому припустимо, що ваш swap-розділ становить 8 Гб. Тепер ми знизилися до 135 ГБ .

Потім є ще деякі речі, які сприяють різниці.

Наприклад, файлова система використовує частину дискового розділу для метаданих. Метадані - це такі назви файлів, дозволи файлів, які частини розділу належать до яких файлів та які частини розділу є вільними. У моїй системі для цього використовується близько 2% розділу. Якщо припустити, що ваш подібний, це дозволить зменшити вільний простір приблизно до 132 ГБ .

Файлова система також може зарезервувати деякий простір, який може використовуватись лише користувачем root. У моїй системі це 5% розділу, тож у вашому випадку це означало б загальну ємність близько 125 ГБ .

Точні цифри залежать від того, використовуєте ви ext2, ext3, ext4, жир, ntfs, btrfs тощо, а також які параметри використовувались для форматування розділу.

Якщо ви використовуєте ext2 або ext3, ви sudo tune2fs -l /dev/sda1можете зрозуміти, куди йде простір.


Дискова утиліта показує рівномірну ємність 154 ГБ (153,859,653,632 байт).
xralf

>> sudo tune2fs -l / dev / sda1 << Які параметри мені підказують, куди йде простір?
xralf

2

Ймовірно, вони використовуються в індексах. Деяка сума може бути використана MBR.


1
MBR не відображається як в циліндрі 0 (навіть не в першому розділі, який часто починається в секторі 2048). Однак є копії суперблоку. І все-таки, це всередину. Дивіться також: unix.stackexchange.com/questions/13547/… та команди "lsblk / dev / sdX" та "dumpe2fs -h / dev / sdX"
Девід Тонхофер

1

sda1 - це не весь ваш диск, а його перший основний розділ. Можливо, ви створили інші відремонтовані розділи, які не відображаються у виводі df, або просто sda1 чомусь не заповнює весь корисний простір або файлова система не використовує у своєму розділі весь наявний простір.

fdisk -l підкаже, як виглядає таблиця розділів.


Звичайно. Ми говоримо лише про розділ / dev / sda1, а не про весь диск.
xralf

Це не було очевидно з вашого запитання, коли ви посилаєтесь на дискову утиліту, не показуючи її вихід. Ви повинні відредагувати це, щоб зробити це зрозумілим. Розповідати про те, як ви створили / файлову систему, також було б корисно.
jlliagre

Відповідна частина виводу дискової утиліти - це "ємність розділу sda1 = 154 ГБ".
xralf

Будь ласка, відредагуйте своє оригінальне запитання, щоб це було зрозуміло.
jlliagre
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.