Как расширить раздел ext4 и файловую систему?

У меня есть диск емкостью 400 ГБ с разделом ext4 320 ГБ. Я хотел бы расширить раздел ext4, чтобы использовать левое пространство (80 ГБ свободного пространства).

+--------------------------------+--------+
|             ext4               |  Free  |
+--------------------------------+--------+

Как я могу это сделать?

Я видел людей, использующих resize2fs, но я не понимаю, изменяет ли размер раздела.

Другим решением было бы использовать fdisk, но я не хочу удалять свой раздел и потерять данные. Как я могу просто увеличить раздел без потери какого-либо файла?

Примечание. Я говорю о несмонтированном разделе данных без LVM, и у меня есть резервные копии, но я бы хотел не тратить некоторое время на восстановление.

30 голосов | спросил mimipc 21 Mayam13 2013, 11:49:56

7 ответов


29

Вы должны начать с размонтированного раздела. Если вы не можете его отключить (например, это ваш корневой раздел или что-то еще, что нужно запустить системе), используйте что-то вроде System Rescue CD вместо этого.

  1. Запустите parted или gparted, если вы предпочитаете графический интерфейс и изменяете размер раздела, чтобы использовать дополнительное пространство. Я предпочитаю gparted, поскольку он дает вам приятное графическое представление, очень похожее на то, которое вы нарисовали в своем вопросе.

  2. resize2fs /dev/whatever
  3. e2fsck /dev/whatever (просто чтобы узнать, находитесь ли вы в безопасности)

  4. Перезагрузите свой раздел.

Пока я никогда не видел этого, сначала сделайте резервную копию своих данных!

ответил Flup 21 Maypm13 2013, 12:03:17
14

Да, вы можете вырастить EXT4 fs онлайн, если у вас уже отсортирован раздел. У вас есть раздел отсортирован? У вас LVM?

sudo resize2fs /dev/drive_to_grow

fdisk изменит размер вашего раздела, правда, но если это корневой раздел (или если какой-либо монтируемый раздел), ему придется сначала отмонтировать. Скорее всего, в оффлайне!

Как и все, что связано с операциями disk /fs, я настоятельно рекомендую иметь резервный и проверенный, хорошо понятный процесс восстановления.

ответил Chris 21 Maypm13 2013, 12:01:35
3

Parted не работает на ext4 на Centos. Мне пришлось использовать fdisk для удаления и воссоздания раздела, который (я проверял) работает без потери данных. Я выполнил шаги в http://geekpeek.net/resize-filesystem-fdisk-resize2fs/. Здесь они, в двух словах:

$ sudo fdisk /dev/sdx 
> c
> u
> p
> d
> p
> w
$ sudo fdisk /dev/sdx 
> c
> u
> p
> n
> p
> 1
> (default)
> (default)
> p
> w
ответил JTW 6 SatEurope/Moscow2014-12-06T01:27:17+03:00Europe/Moscow12bEurope/MoscowSat, 06 Dec 2014 01:27:17 +0300 2014, 01:27:17
3

Обратите внимание, что на некоторых серверах VDS у вас может быть непервичный корневой раздел и необходимо сначала изменить размер контейнера расширенного раздела

Например, вы только что обновили свой план и получили что-то вроде:

Disk /dev/vda: 83886080s
Number  Start    End        Size       Type      File system  Flags
1      2048s    194559s    192512s    primary   ext2         boot
2      196606s  51197951s  51001346s  extended
5      196608s  51197951s  51001344s  logical   ext4

Здесь /dev /vda2 - ваш расширенный контейнер. И /dev /vda5 - основной раздел, который нам нужно изменить до полного доступного пространства.

Самый простой способ:

apt-get -y install parted
parted /dev/vda unit s print all # print current data for a case
parted /dev/vda resizepart 2 yes -- -1s # resize /dev/vda2 first
parted /dev/vda resizepart 5 yes -- -1s # resize /dev/vda5
partprobe /dev/vda # re-read partition table
resize2fs /dev/vda5 # get your space
ответил WSR 27 FebruaryEurope/MoscowbMon, 27 Feb 2017 01:53:04 +0300000000amMon, 27 Feb 2017 01:53:04 +030017 2017, 01:53:04
2

parted может resize разделы и их файловые системы.

ответил 200_success 21 Mayam13 2013, 11:55:16
2

Вы можете использовать fdisk или cfdisk изменить (или воссоздать) раздел (просто убедитесь, что вы не измените его начальную границу), затем перезагрузитесь и resize2fs , Но в целом предпочтительнее использовать LVM-2 вместо MBR /GPT, потому что он позволяет вам вносить эти изменения без перезагрузки ядра.

ответил poige 21 Maypm13 2013, 12:00:42
0

Просто чтобы уточнить, как я делаю это для тех, кто все еще читает эту тему.
Если это загрузочный раздел, который вы хотите изменить, то вы должны загрузиться с диска восстановления bootcd или bootusb, который является просто Live Linux. Это позволяет запускать Linux на компьютере, а не на диске, в который вы хотите внести изменения.

Я думаю, что лучший «спасательный» cd или usb в этом случае будет загрузочным gparted USB или CD
Случаи, в которых вам нужен образ спасения
1. Разделение, которое нужно развернуть, - это последний раздел, но вы его загрузили и не можете его размонтировать. sda1 = загрузка (или своп)
sda2 = swap (или загрузка)
sda3 = /
Неиспользуемое пространство

  1. Если раздел, который нужно развернуть, НЕ является последним разделом, вы должны использовать gparted загрузочный образ для перемещения или изменения размеров разделов.
    sda1 = загрузка
    sda2 = /(разбиение на разделы не является последним)
    sda3 = swap
    неиспользуемое пространство

Если вы хотите изменить смонтированный раздел, который не является «корневым» разделом (/), например /home, который является другим разделом, тогда нет необходимости использовать образ спасения. Это особенно верно, если это последний раздел.
sda1 = загрузка
sda2 = /
sda3 = /home
неиспользуемое пространство
-или-
sda1 = /
sda2 = /home
неиспользуемое пространство

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

В этом случае вам просто нужно отключить /home, пока вы его расширяете. Но для размонтирования /дома вам необходимо убедиться, что вы не вошли в учетную запись пользователя, домашний каталог которой находится внутри нее. Так как «root» пользовательский домашний каталог находится непосредственно под системным корнем /как в /root, если вы можете входить в root, то вы можете размонтировать /home

Я выхожу из сеанса GUI (KDE /Gnome /etc) и использую [CTRL] + [ALT] + [F1], чтобы вызвать сеанс оболочки.
Если вы только вышли из входа в систему, для завершения закрытия любых файлов может потребоваться Linux 20-30 секунд, поэтому вы можете получить ошибки, пытающиеся выполнить umount /home.
1. umount /home (я повторяю эту команду, если она не работает до 30 секунд, а затем посмотрите другие сеансы, чтобы увидеть, где-то я «cd /home /xxx»).
2. parted /dev /sda
   а. изменить размер x (x = раздел, который вы хотите изменить размер, использовать «p», чтобы получить список разделов)
   б. Введите последний сектор resize = "-1" (минус 1 означает 1 сектор с конца диска)
   с. q (прекращение выхода)
3 resize2fs /dev /sda "x" (x = размер раздела, который будет изменен, что также перемонтирует файловую систему)
4. df -m (я проверяю /home, чтобы проверить его изменение размера)
Я никогда не терял файлы или искажал диск с помощью этого метода.

Удачи.

ответил Chuck A 5 SatEurope/Moscow2015-12-05T06:20:21+03:00Europe/Moscow12bEurope/MoscowSat, 05 Dec 2015 06:20:21 +0300 2015, 06:20:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132