На своєму інтранет-сервері у мене є розділ 100.00 GiB / dev / sda5, який я використовую як фізичний об'єм для lvm2.
- Це єдиний фізичний об'єм у моїй групі томів vg01.
- vg01 наразі містить один логічний об'єм lv01, використовуючи повний 100.00 GiB - ну, власне, 99,99 Гбіт через деяке округлення (саме тут починається проблема).
- lv01 містить файлову систему ext3, використовуючи весь простір.
Я хочу зменшити lv01 до приблизно 97 GiB, тому можу створити lv02 з прибл. 3 Гб (мені це потрібно, щоб зробити lvm знімки).
Що я робив до цього часу:
e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G
Це добре спрацювало. Але тепер мені доведеться бігти
lvreduce --size ? /dev/mapper/vg01-lv01
І я не впевнений, яке саме значення мені доведеться вказати. Сторінка lvreduce
man чітко попереджає, що отриманий розмір не повинен бути меншим, ніж файлова система. Я також не хочу робити його більшим, ніж це має бути. Але зараз у мене різні цифри:
- Я вказав
97G
у resize2fs. df -h
каже, це 96 Г.df
каже, це 100115936 1К-блоки.- lvdisplay (звичайно) все ще повідомляє 99,99 ГБ за логічний об'єм.
Що потрібно вказати lvreduce
?
Редагувати:
В даний час прийнята відповідь дає хороший спосіб вирішення. Однак для того, щоб інтегрувати такі речі в тверді сценарії тощо, я взагалі вважаю за краще використовувати точні вимірювання. А може, вже є надійний (!) Скрипт або інструмент, який виконує всю процедуру зміни розміру за один крок?
resize2fs
для зменшення файлової системи до 90GiB або близько того, а потім обмінятись аргументами доlvreduce
(з наступнимresize2fs
), щоб побачити, що найкраще працює.