Я должен был сбросить NVRAM через перемычку материнской платы.
Вы должны начать с отключенного раздела. Если вы не можете его размонтировать (например, это ваш корневой раздел или что-то еще, что необходимо запустить системе), используйте вместо него что-нибудь вроде System Rescue CD .
Запустите parted
или gparted
, если вы предпочитаете графический интерфейс, и измените размер раздела, чтобы использовать дополнительное пространство. Я предпочитаю gparted
, поскольку он дает вам красивое графическое представление, очень похожее на то, которое вы нарисовали в своем вопросе.
resize2fs / dev / something
e2fsck / dev / something
(просто чтобы убедиться, что вы в безопасности)
Перемонтируйте свой раздел.
Хотя я никогда не видел этого сбоя, сначала сделайте резервную копию своих данных!
Да, вы можете увеличить файловую систему EXT4 онлайн, если у вас уже есть отсортированный раздел. Вы отсортировали разделы? У вас есть LVM?
sudo resize2fs /dev/drive_to_grow
fdisk
изменит размер вашего раздела, правда, но если это корневой раздел (или, если это действительно так, любой смонтированный раздел), его сначала нужно будет размонтировать. Так что, скорее всего, в автономном режиме!
Как и во всем, что связано с операциями с диском / файловой системой, я настоятельно рекомендую иметь резервную копию и протестированный, хорошо понятый процесс восстановления.
Вы можете использовать fdisk
или cfdisk
, чтобы изменить (или воссоздать) раздел (только убедитесь, что вы не измените его начальную границу), затем перезагрузитесь и resize2fs
. Но в целом предпочтительнее использовать LVM-2 вместо MBR / GPT, поскольку это позволяет вносить эти изменения без перезагрузки ядра.
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
Просто чтобы прояснить, как я это делаю для всех, кто все еще читает эту ветку.
Если вы хотите изменить размер загрузочного раздела, вы должны загрузиться с «аварийного» диска bootcd или bootusb, который представляет собой просто Live Linux. Это позволяет вам запускать Linux на машине, отличной от диска, на котором вы хотите внести изменения.
Я думаю, что лучшим «спасательным» CD или USB в этом случае будет загрузочный USB или CD с gparted
Случаи, когда вам нужен аварийный образ
1. Расширяемый раздел - это последний раздел, но вы загрузились с него и не можете его размонтировать.
sda1 = загрузка (или свопинг)
sda2 = swap (или загрузка)
sda3 = /
Неиспользуемое пространство
Если вы хотите изменить смонтированный раздел, который не является «корневым» разделом (/), например / home, который является другим разделом, то нет необходимости использовать аварийный образ. Это особенно верно, если это последний раздел.
sda1 = загрузка
sda2 = /
sda3 = / home
неиспользуемое пространство
-или-
sda1 = /
sda2 = / home
неиспользуемое пространство
Это ситуация, когда я беру образ с меньшего диска или SSD и перемещаю его на больший SSD.
В этом случае вам просто нужно размонтировать / home, пока вы его расширяете. Но чтобы размонтировать / home, вам нужно убедиться, что вы не вошли в какую-либо учетную запись пользователя, домашний каталог которой находится внутри нее. Поскольку домашний каталог пользователя "root" находится непосредственно под системным root / как в / root, если вы можете войти в систему root, то вы можете отключить / home
Я выхожу из сеанса GUI (KDE / Gnome / etc) и использую [CTRL] + [ALT] + [F1], чтобы открыть сеанс оболочки.
Если вы только что вышли из системы, чтобы закрыть все файлы, Linux может потребоваться 20–30 секунд, поэтому вы можете получить ошибки при размонтировании /home.
1. umount / home (я повторяю эту команду, если она не работает в течение 30 секунд, затем просматриваю другие сеансы, чтобы узнать, не где-то я «cd / home / xxx»)
2. parted / dev / sda
а. resize x (x = раздел, размер которого вы хотите изменить, используйте "p", чтобы получить список разделов)
б. Введите последний сектор resize = "-1" (минус 1 означает 1 сектор от конца диска)
c. q (уходит, расстается)
3 resize2fs / dev / sda "x" (x = раздел, размер которого необходимо изменить. Это также перемонтирует файловую систему)
4. df -m (проверяю / home, чтобы убедиться, что его размер изменился)
Я никогда не терял файлы и не повредил диск с помощью этого метода.
Удачи
Примечание, на некоторых серверах 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
Меня попросили увеличить диск, смонтированный как / scratch на сервере Dell под управлением CentOS 7, не отвлекая текущих пользователей. Это был раздел XFS на диске RAID 0 с обычной меткой GPT. Это будет работать для раздела ext4 почти таким же образом - см. Ниже.
Вот как я сделал это, не отключаясь, не перезагружая и не прерывая операции в системе. Я просто использовал команды Linux (и инструменты Dell RAID):
/ sys / block / sdb / size
все еще было меньшим. Это было исправлено с помощью команды:
echo 1> / sys / block / sdb / device / rescan
parted
, чтобы отредактировать метку диска и переместить ее копию в конце диска на новый конец диска. К счастью, он угадал, чем я хочу заниматься, без поддержки и подсказал мне. Во-первых, копия метки диска:
Ошибка: резервная таблица GPT находится не в конце диска, как должно быть.Это может означать, что другая операционная система считает, что диск меньше. Исправить, переместив резервную копию в
конец (и удаление старой резервной копии)?
Исправить / Игнорировать / Отменить? F
Предупреждение: не все пространство, доступное для / dev / sdb, похоже, используется, вы можете исправить GPT, чтобы использовать все пространство (дополнительные 7811891200 блоков) или продолжить с текущими настройками?
Исправить / игнорировать? F
parted
не позволил мне сделать это, пока диск был смонтирован, поэтому вместо этого я использовал fdisk
:
fdisk / dev / sdb
d 1
n 1 (значения по умолчанию верны для полного размера диска)
т 1
11 (Это основные данные Microsoft - то же самое, что и xfs).
w
parted
на этом этапе, чтобы дать разделу то же имя, что и раньше, поскольку fdisk
не поддерживает именование разделов. Мелкая деталь. partprobe / dev / sdb
(и partprobe / dev / sdb1
для хорошей меры), чтобы ОС снова прочитала таблицу разделов. Я думаю, что только первая команда действительно изменила ситуацию. xfs_growfs -d / scratch
, которому потребовалось всего 1,6 секунды, чтобы увеличить раздел до его окончательного размера, заполнив только что выросший диск. Это также будет работать с томами ext4: единственная разница будет заключаться в использовании resize2fs / dev / sdb1
вместо xfs_growfs -d / scratch
- и использовании правильного номера типа раздела для ext4 вместо xfs. Команда fdisk может перечислить номера типов для распространенных дисковых систем, включая ext4.
Принятый ответ несколько устарел: изменение размера файловой системы ext4 лучше выполнять в сети, а не в автономном режиме, поскольку путь кода расширения в сети используется гораздо чаще, чем в автономном режиме.
Сложнее, вероятно, расширить базовый раздел, если только вы не используете LVM и у вас есть свободное место в вашей группе томов. Чтобы расширить раздел онлайн, вы можете использовать fdisk
или parted
; затем вам нужно было запустить kpartx <устройство>
, чтобы сообщить ядру об изменении. При использовании LVM вам необходимо pvresize
только что измененного размера раздела перед lvresize
тома.
Наконец, вы можете выполнить resize2fs
свою файловую систему.
Пример использования growpart
и resize2fs
:
$ growpart /dev/sda 1
CHANGED: partition=1 start=2048 old: size=39999455 end=40001503 new: size=80000991,end=80003039
$ resize2fs /dev/sda1
resize2fs 1.45.4 (23-Sep-2019)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 5
The filesystem on /dev/sda1 is now 10000123 (4k) blocks long.