Як я можу розширити розмір розділу ext4 на debian


26

У мене диск із цією конфігурацією:

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2612    20971520   83  Linux
/dev/sda3           60736       60801      525312   82  Linux swap / Solaris

Нерозподілений простір 478 Гб, як би я міг додати цей простір до / dev / sda1, не втрачаючи даних, які зараз в / dev / sda1? (файлова система ext4).

ПРИМІТКА: це сервер із лише SSH, без GUI для запуску таких матеріалів, як gparted.


Я можу перезавантажити сервер і використовувати його під час відключення диска.
Себ

Цей конкретний пункт вже багато разів висвітлювався на сайтах ПП. Найкраще було б зробити ще трохи досліджень, перш ніж ставити запитання.
mdpc

Також див. Askubuntu.com/a/937351/621883, особливо відповідь, що містить зростанняpart і resize2fs, була корисною для мене.
klor

Відповіді:


38

Збільшити розділ: fdisk -u /dev/sda.

p щоб надрукувати таблицю розділів, взяти до відома номер, початок, кінець, тип sda1.

Видаліть його d:

Відтворіть його з однаковим числом (1), запустіть і введіть, але з більшим кінцем (дбаючи про те, щоб не перетинатися з іншими розділами). Спробуйте вирівняти речі на мегабайтній межі, яка призначена для кінця , зробіть це кратним 2048 мінус 1. Змініть тип, якщо потрібно t(для розділів, що містять extXабо btrfsфайлову систему, за замовчуванням 83- нормально).

Потім wнаписати і qкинути.

Таблиця розділів буде змінена, але ядро ​​не зможе врахувати це, оскільки деякі розділи змонтовані.

Однак якщо розділи, що використовуються, лише збільшені, ви повинні мати можливість змусити ядро ​​взяти новий макет за допомогою:

partx /dev/sda

Якщо це не вдасться, вам доведеться перезавантажити. Система повинна завантажуватися просто чудово.

Потім змініть розмір файлової системи, щоб вона поширювалася в межах розширеного розділу:

resize2fs /dev/sda1

Що для ext4буде працювати чудово навіть у прямому ефірі.


Я знаю, що це старе, але чи збереже це дані, якщо ви видалите розділ?
Канадський Люк ВІДНОВЛЕННЯ МОНИЦИ

3
@CanadianLuke, так, видалення розділу в fdisk змінює лише таблицю розділів. Якщо ви відтворите його однакового розміру, зміни взагалі не будуть. Дані ніколи не змінюються, якщо ви не зменшите розділ і не створите інший логічний або розширений розділ посередині того, яким раніше був ваш розділ, і в цьому випадку запис розділів для цього розширеного / логічного розділу буде записаний над деякими даними там.
Стефан Хазелас

Це також чудово підходить для розділів ntfs (з наявним томом, з даними).
Кенні Евітт

Це звучить розумно, але що робити, якщо у мене є розділи Extended, Linux LVM та Linux swap / Solaris, що починається з кінця розділу Linux? Чи слід видалити ці розділи>? Я переживаю, що в такому випадку файлова система не запуститься, оскільки, можливо, LVM використовує Linux, наприклад, у тому самому запуску та в кінці. І я також не хочу втрачати дані.
блакитний

@cyan зміни розміру логічного тома LVM з на ньому ext4 FS або зміна розділу, який використовується як фізичний об'єм для LVM, були б різними питаннями при різних процедурах.
Стефан Шазелас

7

Ви не можете зробити це безпечно, поки розділ змонтований, тобто потрібно завантажити інший розділ і зробити це звідти.

gpartedце приємний, простий графічний інтерфейс для цієї мети. У нашій біржі видалених коментарів ви згадали, що вона не розпочнеться через "не може отримати доступ до відображення" - це означає, що ви не в X; оскільки це графічний інтерфейс, без цього він не працюватиме.

Звичайно, якщо у вас немає іншого розділу, вам потрібен живий компакт-диск або щось подібне - я думаю, вони зазвичай поставляються з gparted. Ваша найкраща ставка - це, мабуть, фактичний компакт-диск на gparted , який, як видається, має останню останню стабільну версію (і вміститься на компакт-диску , що приємно, оскільки "живий компакт-диск" швидко стає "прямим DVD").

У мене ніколи не було проблем, але, звичайно, спочатку поверніть свою важливу частину.


Я не можу використовувати gparted, оскільки у мене є лише доступ до SSH (це безголовий сервер). Я в змозі відключити жорсткий диск, оскільки система не працює на / dev / sda.
Себ

1
Якщо у вас немає фізичного доступу до системи і, отже, ви не можете корисно відключити та змінити розділ, я думаю, вам не пощастило або, принаймні, на дуже схематичній території - наприклад, ви можете спробувати використовувати його fdiskпід час встановлення, виберіть (x) pert, (c) кількість циліндрів. Але я цього не робив і робив би це лише тоді, якби іншого вибору абсолютно не було.
золотинок

Я щойно сказав, що можу відключити перегородку. Я навіть можу перезавантажити весь сервер і зайти з іншого сервера, що було б так само, як використання Live CD (просто без GUI).
Себ

@Seb: мені погано, вибачте.
золотинок

2

Я знаю, що це дуже стара проблема, але багато людей шукають цього рішення.

Для цього прикладу ви маєте таку типову ситуацію. На початку - один розділ, а на кінці розташований своп розділ. це не добре, оскільки своп може бути сильно завантажений, а кінець обертового диска - найповільніша його частина. що я пропоную?

  1. Створіть завантажувальний розділ на початку. Чому на початку? тому що у багатьох інструментів виникли проблеми із закінченням великого диска над бар'єром 2 ТБ. Після завантаження розділ повинен бути swap розділом. Це для продуктивності. Решта диска слід використовувати для інших розділів.

Але що з цією ситуацією? Я не рекомендую розширювати sda1. Я пропоную створити інші розділи після sda1 & sda2, змонтованих як /homeі /usr. У цих каталогах зберігається найбільше даних користувачів та систем, і можна безпечно переміщувати дані з цих каталогів у нові розділи.

  1. Але. (друге "але"), якщо ви все ще хочете зберегти поточну структуру, спершу слід видалити розділ swap. Ви повинні зробити свопофф, зауважте це в /etc/fstab. якщо swapon скаже вам (див. man), не використовується жоден своп, ви можете видалити його інструментом розділів (fdisk чи подібним).

    Якщо у вас немає цього розділу, ви можете збільшити sda1. Використовуючи fdiskспочатку слід роздрукувати розділ. Це для запам'ятовування, звідки вона починається. По-друге, видаліть розділ за допомогою клавіші 'd'. Не панікуйте, на жорсткий диск нічого не написано :). Після друку ви бачите, на диску немає жодного розділу.

    Далі створіть новий розділ, але будьте уважні. Подивіться, з якого сектора почався оригінальний розділ. Напишіть однакове число. Після цього подивіться на кінець. fdiskзапропонує вам останній доступний сектор. Скористайтеся калькулятором і призначте собі, скільки обміну вам потрібно в кілобайтах. Помножте його на 2 і відніміть це число від останнього номера сектора, запропонованого fdisk. Створіть розділ. Роздрукуйте це (воно все ще знаходиться у тимчасовій пам'яті fdisk), і подивіться, що все нормально.

    Після цього натисніть клавішу 'w', це дозволить записати новий розділ на диск. Ви побачите інформацію, яка синхронізована, або синхронізація не вдалася. Якщо не вдалося, ви можете викликати команду partx / dev / sda для синхронізації. Якщо вона все-таки не працює, слід перезавантажити систему. Після перезавантаження ви підготували більший розділ, але файлова система на ньому все ще менша. Ви повинні його виростити. EXT4 можна вирощувати на льоту :), використовуйте resize2fs /dev/sda1для цього.

    Вам не потрібно перезавантажувати перезавантаження тощо. Нарешті, слід відновити swap-розділ. Просто знову використовуйте fdisk, створюйте новий розділ як своп. Після написання 'w' пристрій sda2 буде відновлено. Підготуйте структуру swap на ній за допомогою mkswap /dev/sda2, видаліть зауваження щодо swap /etc/fstabі, нарешті, зробіть swapon -a. Подивіться, використовуючи команду swapon або top, активізується підкачка.

Я знаю, це дуже довге пояснення. Я сподіваюся, що він стане корисним для будь-якого. Зауважте, на мій погляд, файлова система xfs набагато краща, на жаль, цей Fs не підтримує скорочення без тимчасового копіювання в інше місце, але стискання використовується рідко. Приємно, що xfs займає надзвичайно мало місця для власних метаданих, і багато в чому швидше порівняно з ext4.

Ще одна підказка: краще використовувати деякий LVM як середній шар для розділення. після цього будь-яке зміна змінюється набагато простіше. Продуктивність порівнянна, звичайно, ви можете використовувати суміш управління жорстким диском. ви можете використовувати в загальних сирих розділах і LVM.


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