Назад | Перейти на главную страницу

Невозможно изменить размер корневого тома ec2 ebs

Я следил за многими руководствами, в которых почти все говорится об одном и том же, а именно:

  1. Остановить экземпляр
  2. Отключить том
  3. Создать снимок тома
  4. Создайте больший объем из снимка
  5. Присоедините новый том к экземпляру
  6. Запустить резервное копирование экземпляра
  7. Бегать resize2fs /dev/xxx

Однако на шаге 7 начинаются проблемы. В любом случае работает resize2fs всегда говорит мне, что это уже xxxxx блоков и ничего не делает, даже с -f прошло. Итак, я начинаю читать руководства, в которых в основном говорится об одном и том же, а именно:

  1. Удалить все партитоны
  2. Восстановите их в том виде, в каком они были, за исключением больших размеров.
  3. Перезагрузите экземпляр и запустите resize2fs

(Я пробовал эти шаги как в реальном экземпляре, так и путем присоединения тома к другому экземпляру и выполнения команд там) Основная проблема заключается в том, что экземпляр не запускается снова, а журнал системных ошибок, представленный в консоли AWS, не Ошибок нет. (однако он останавливается на загрузчике grub, который для меня указывает на то, что ему не нравятся разделы (да, флаг загрузки был переключен на раздел без каких-либо изменений)). разделов заключается в том, что экземпляр, к которому подключен том, сообщает, что раздел имеет недопустимый магический номер и суперблок поврежден. Однако, если я не внесу изменений и снова подключу том, экземпляр будет работать без проблем.

Может ли кто-нибудь пролить свет на то, что я делаю неправильно?


редактировать

На моем новом объеме 20 ГБ с изображением 6 ГБdf -h говорит:

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1            5.8G  877M  4.7G  16% /
tmpfs                 836M     0  836M   0% /dev/shm 

И fdisk -l /dev/xvde говорит:

Disk /dev/xvde: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7d833f39

    Device Boot      Start         End      Blocks   Id  System
/dev/xvde1               1         766     6144000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/xvde2             766         784      146432   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.

Также, sudo resize2fs /dev/xvde1 говорит:

resize2fs 1.41.12 (17-May-2010)
The filesystem is already 1536000 blocks long.  Nothing to do!

В основном проблема здесь в том, что вы пытаетесь увеличить размер файловой системы, чтобы заполнить раздел, но на самом деле размер раздела не увеличился.

Уловка здесь будет заключаться в том, чтобы смонтировать моментальный снимок тома в другой экземпляр, например, / dev / xdf. Затем используйте parted или fdisk, чтобы удалить раздел подкачки в / dev / xdf2.

parted /dev/xdf
rm 2

Затем вы можете изменить размер другого раздела, чтобы заполнить диск

parted /dev/xdf
resize 1

Затем используйте значение по умолчанию для начального раздела и соответствующий номер для конечной позиции. Затем заново создайте раздел подкачки. Затем, если вы запустите resize2fs / dev / sdf, он должен увеличить размер раздела. Затем отключите этот диск и используйте его как корневой том для нового экземпляра.

На самом деле проблема в том, что вы используете плохой AMI, который устанавливает раздел подкачки. Виртуальные машины Amazon не нуждаются в разделах подкачки, и в руководствах, которые вы изучили, предполагается, что ваш том EBS не разбит на разделы. Я бы рекомендовал начать с Ubuntu AMI от Alestic.com или используя Amazon Linux AMI.

Если вы должны продолжать использовать AMI, который вы используете, то вам нужно удалить раздел подкачки и изменить размер раздела ext4 с помощью fdisk а затем вы можете изменить размер файловой системы. Делать это довольно долго, сложно и страшно, и я никогда этого не делал, поэтому не буду объяснять, как это делать. Вы можете найти инструкции через Google, если осмелитесь.

Я бы выбрал более безопасный путь. И похоже, что вы уже делаете такие же сложные вещи. Прикрепите старый том к инстансу, запущенному с Amazon Linux или Ubuntu или любым другим способом, который вам удобен. Установите его только для чтения. Затем создайте новый том большего размера, который вам нужен. Прикрепите его к тому же экземпляру с буквой другого устройства. Отформатируйте его, используя ту же метку (или тот же UUID, если ваш fstab монтируется по UUID ... в AWS нет реальной необходимости в этом, но это не гарантия, что этого не происходит). Смонтируйте его для чтения-записи. Скопируйте файловое дерево со старого тома на новый. Для этого вы можете использовать cp или rsync.

Возможно, вам придется предпринять другие шаги, чтобы сделать его загрузочным, если вы не используете PVGRUB «ядра загрузчика» для загрузки вашего реального ядра с тома.

Обязательно сделайте снимок старого тома перед этим и снимок нового тома после этого.