Як я можу змінити розмір розділу LVM? (тобто фізичний обсяг)


89

Я хочу скоротити свій другий (LVM) розділ, щоб створити новий розділ у щойно звільненому просторі. Я використовую Live CD для цього, тому що я знаю, що не можу змінити розмір / перемістити цей розділ, поки він використовується. Коли я відкрив GParted на Live CD, я зрозумів, що не можу змінити розмір розділу, оскільки, натиснувши його правою кнопкою миші, параметр "змінити розмір / перемістити" відключений.

Я намагався його відключити, щоб "ледачий" відключити його ( umount -l /dev/sda2), але це не вийшло.

Скріншот від GParted:

Знімок екрана GParted

Відповіді:


49

Схоже, в Google є багато результатів, де люди мали подібні проблеми. Приклад:

Створіть резервну копію всіх важливих даних перед тим, як спробувати. Завжди припускайте, що ви можете втратити всі свої дані під час зміни розмірів розділів.

Скорочення LVM без втрати даних

Цей потік форуму пропонує наступну процедуру, у цьому прикладі ми зменшуємо розділ від 10G до 9G:

По-перше, ми демонтуємо.

sudo umount /dev/vg_blah/lv_blah

Перевірте файлову систему.

sudo e2fsck -f /dev/vg_blah/lv_blah

Змініть розмір файлової системи та логічний об'єм. Виконуючи це за один крок, можна уникнути помилок, які спричиняють втрату даних. (Примітка, параметр lvreduce -Lінтерпретує Gяк 2 ^ 30 байт і gяк 10 ^ 9 байт.)

sudo lvreduce --resizefs -L 9G /dev/vg_blah/lv_blah

(необов’язково) Вийміть фізичний привід із групи гучності (якщо у вас є невикористаний диск).

sudo vgreduce vg_blah /dev/sdxy

Вся заслуга належить Brianmcgee .

Примітка: vgreduceне вдасться, cannot resize to xxxxx extents as later ones are allocatedякщо у вас є інший lv в кінці диска - у мене був своп lv, який я видалив. Див. Як зменшити логічний та фізичний обсяги Ubuntu LVM? за допомогою у цій ситуації.


1
e2fsck -f /dev/vg_blah/lv_blahповертає: "e2fsck: Пристрій чи ресурс зайнятий під час спроби відкрити / dev / sda2 файлову систему, змонтовану або відкриту виключно іншою програмою?", те саме з resize2fs ...
Idan Yadgar

12
Відсутня відповідь, як змінити фізичний обсяг. Також настійно рекомендую поєднувати два кроки зміни розміру в один із lvreduce -r.
Flimm

4
Крім того, вам потрібно усвідомити, що 1Gдо lvreduce1000000000 байт, тоді як до resize2fsнього - гібібайт. Якщо ви хочете передати 1 гібібайт lvreduce, використовуйте 1gзамість цього.
Flimm

1
Ви не використовуєте vgreduce; тобто для видалення pv з групи томів.
psusi

2
Я дуже підозрюю, що lvreduceвикористовує G = гібібайт у диференційному режимі. Це, безумовно, відбувається в абсолютному режимі. Сторінки цієї сторінки погано написані і не пояснюють, що означають їхні підрозділи, що я вважаю межею кримінальної недбалості.
Урхіксидур

45

Ви можете стиснути / розширити логічний тому дуже легко за допомогою інструменту графічного інтерфейсу користувача: system-config-lvm. Оскільки system-config-lvmвін не має попереднього встановлення, після завантаження з live-cd, ви повинні встановити його:

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt-get install system-config-lvm

Після встановлення запустіть програму, виберіть логічний том, який потрібно змінити, на лівій панелі, натисніть «Змінити властивості».

Основна програма управління логічним обсягом GUI

Тепер міняйте параметри за своїм бажанням!

Вікно редагування логічної гучності

Хороша річ у system-config-lvmтому, що вона не дозволить вам продовжувати, якщо новий розмір розділу менший за всі наявні ваші дані разом у сукупності (я тільки що спробував це і бачив на собі).

Список літератури:

  1. How-To Geek підручник (це походження зображень).
  2. Повний посібник програми Red Red Hat .

2
GUI - це, безумовно, шлях, однак вам, ймовірно, доведеться запустити його з прямого компакт-диска.
Майк

10
чому system-config-lvmризиковано ніж lvresizeабо lvresize -r?
Thufir

1
Ви також можете спробувати blivet-gui ( github , Ubuntu PPA ), менеджер розділів нового покоління, який обробляє диски LVM.
бей

5
Будьте уважні, що system-config-lvm використовує потужності 1024 одиниць, незважаючи на використання (неправильного) формулювання "гігабайт". Це дійсно повинно робити так palimpsest(він же Disk Utility) і вказувати його значення в однозначних байтах.
Урхіксідур

4
@Suncatcher 17.10 та 18.04 ви повинні додати сховище Xenial. sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
m93a

24

Примітка . Ви повинні виконати майже всі наступні команди, використовуючи Live CD. Іноді потрібно, щоб ви відключили розділ, який уже встановлений на / (у цьому випадку ви не можете його відключити).

Це всі кроки, необхідні для зміни розміру LVM або LVM2 розділу:

sudo lvresize --verbose --resizefs -L -150G /dev/mapper/ubuntu

sudo pvresize --setphysicalvolumesize {some-space} /dev/sda5

Якщо друга команда виробляє щось подібне:

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

Тоді вам доведеться переставити нерозподілений простір наприкінці LVM. Це означає, що після розділу root і swap_1. Отже, спочатку вам потрібно перевірити інформацію про фізичні томи за допомогою команди нижче:

sudo pvs -v --segments /dev/sda5

Це покаже вихід, як:

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx sss 0 free                          
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g zzz ttt swap 0 linear /dev/sda5:yyy-www

Зверніть увагу на yyy-www . Для видалення зовнішньої фрагментації використовуйте таку команду:

sudo pvmove --alloc anywhere /dev/sda5:yyy-www

Тепер давайте подивимося, як це відбувається:

sudo pvs -v --segments /dev/sda5

Це покаже висновок типу (врахуйте зміни):

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx ttt swap 0 linear /dev/sda5:xxx-sss
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyy www 0 free

Після цього використовуйте GParted та змініть LVM до максимально використовуваної площі, а відпочинок буде у нерозподіленому просторі. Насолоджуйтесь ...


16

Я рекомендував би ще один інструмент GUI - KVPM . Він поєднує функціональність GParted та system-config-lvm. Більше того, це дозволяє виконувати деякі операції на живих (змонтованих) розділах, які не дозволяє система-config-lvm. Однак, звук повинен бути відключений для зменшення.

введіть тут опис зображення введіть тут опис зображення

Він знаходиться у всесвітньому сховищі з Ubuntu 12.04, так що просто робіть sudo apt-get install kvpm

Примітка. Почніть його з прав root sudo kvpm


його немає у сховищі Всесвіту:E: Unable to locate package kvpm
Джефф Пукетт


Це працювало для мене, де "system-config-lvm" не завантажував жодних підключених пристроїв / дисків / файлових систем. З додатковим бонусом не потрібно завантажувати та зайві сховища та попередньо конфігуруватись на моїй машині Ubuntu. Крім того, працював над Gparted, оскільки це плювало помилки щодо скорочення файлової системи. (Я змінюю розмір SD-карти RetroOrangepi з 32 ГБ до 8 Гб для резервного копіювання)
BiTinerary

Виглядає добре, думав, що може знадобитися додаткові ~ 100 М для всіх інших залежностей K, якщо ви вже не використовуєте KDE
Xen2050

12

Тільки остання версія Gparted (0.14) підтримує зміну фізичних обсягів LVM. Версія, що постачається з Ubuntu 12.10 або 13.04, не підтримує його.

Ось як змінити розмір фізичного обсягу LVM:

  1. Якщо група гучності, пов'язана з фізичним обсягом LVM, не має достатньо нерозподіленого простору, вам доведеться створити її, зменшивши логічний том. Подивіться на відповідь bigbadonk420 щодо інструкцій, як це зробити. Ви також можете використовувати диски GNOME (включені до Ubuntu) для деяких кроків, якщо ви віддаєте перевагу графічний інтерфейс.

  2. Запишіть останнє зображення .iso з веб-сайту GParted та запишіть його на компакт-диск або покладіть на USB-накопичувач. Завантажте компакт-диск або USB-накопичувач. Крім того, ви можете скласти останню версію GParted з джерела.

  3. Використовуйте GParted для зміни фізичного обсягу LVM. GParted не дозволить вам зменшити фізичний об'єм LVM на розмір менший, ніж дозволяє нерозподілений простір.


Спасибі Flimm. Я очікував, що 12.10 буде досить нова версія gparted. Ваша відповідь спрямовувала мене в правильному напрямку.
Martijn Heemels

1
У мене з'явилися останні gparted, але це не дозволить мені змінити розміри розділів ... У мене є / dev / sda2 типу ext2 і під цим, / dev / sda5 типу lvm2. Але GParted говорить обом , що мінімальні і максимальні розміри однакові, і , отже , не дозволяє мені змінити його ... :-(
Paul

Або використовувати pvresizeпакет LVM2, правда?
203967 р.

@Paul ти це вирішив? У мене точно така ж проблема: S
Кастібланко

@Castiblanco Я не вирішив це, я закінчив витерти всі речі та перевстановити без LVM. Для мене один урок: Не використовуйте LVM для стандартних настільних установок.
Павло

9

Я знайшов цю відповідь випадково, але це принаймні спрацювало для мене. У моєму випадку у мене вже був зарезервований нерозподілений простір на диску після кореня, тому я пропускаю частину, як ви отримуєте більше місця, і просто пояснюю, як я використовував його в root без завантаження.

ПРИМІТКА. Замість використання gpartedвам, ймовірно, краще користуватися system-config-lvm. Наступного разу я замість цього використаю ... Моя версія gparted становила 0,18.

  1. Спершу я gpartedмаксимально розширив корінний розділ. На мій подив, він поширював лише фізичні розміри і нічого не робив до логічної частини. Так df -kкоманда сказала, що диск все-таки повний.
  2. lvresize -l +100%FREE /dev/ubuntu-vg/rootрозширює логічний розділ наскільки це можливо. Не потрібно перевіряти і обчислювати ГБ або блоки різними методами.
  3. resize2fs /dev/ubuntu-vg/root це третій крок, який я зробив: він розширює файлову систему на розмір логічного розділу.

Останній крок можна об'єднати з другим:

lvresize -l +100%FREE --resizefs /dev/ubuntu-vg/root


Це дозволяє зменшити логічний об'єм, але питання ОП полягає у зменшенні фізичного обсягу.
Стефан

ти врятував мені життя
Куанг Ха

1

На додаток до @ bigbadonk420 «S відповідь , замість того , щоб робити наступне:

resize2fs -p /dev/vg_blah/lv_blah 9G
lvreduce -L -1G /dev/vg_blah/lv_blah

Зробіть:

lvreduce -r -L 9G /dev/vg_blah/lv_blah

Зверніть увагу, -rщо одночасно знижує файлову систему і є безпечною.


Але це не зменшує фізичний обсяг.
Стефан

0

Попередження про себе найбільш голосував відповіді : Для того, щоб НЕ знищити нову установку по замовчуванням з опцією LVM (14,04 Trusty тар), 1) читати всю сторінку, 2) видалити своп 3) і , можливо , змінити команду для «Зменшення розміру логічних том ", як це:

lvreduce -L -1g /dev/vg_blah/lv_blah

Настійно рекомендую system-config-lvm.


Знову ОП хоче зменшити фізичний обсяг.
Стефан

0

Щоб зробити це за допомогою GParted, клацніть правою кнопкою миші на dev / sda2 (що ви хочете зменшити). Виберіть "Деактивувати". Тепер ви зможете змінити розмір свого lvm-розділу.

Оновлення: рішення @Cao Min Tu набагато краще. У мене було кілька проблем з GParted після зміни розміру

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