Невозможно изменить размер корневого раздела на EC2 centos

Я создал свою машину EC2 с помощью изображения сообщества Centos 6.3 x64. Я добавил 35 ГБ диск. Теперь, когда я делаю #df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  1.2G  6.4G  16% /
tmpfs                 7.3G     0  7.3G   0% /dev/shm

мой диск имеет размер 35 ГБ, но он показывает 8 ГБ в корневом каталоге и 7 как tmpfs.

Я попытался использовать resize2fs, но он не работал на centos. диск имеет ext4 partation..

# resize2fs /dev/xvda
resize2fs 1.41.12 (17-May-2010)
resize2fs: Device or resource busy while trying to open /dev/xvda
Couldn't find valid filesystem superblock.

или даже если я попробовал resize2fs/dev/xvda1, он говорит, что устройству нечего делать.

любая идея или другой способ, ее мой корневой диск (/). поэтому не могу его размонтировать.

Ответ 1

Я нашел способ сделать это, resize2fs не работает, если не уверен, почему, но он говорит, что устройство или ресурс заняты. я нашел очень хорошую статью в resizedisk, используя fdisk, мы можем увеличить размер блока, удалив и создав его и сделаем раздел загрузочным. все, что требуется, это перезагрузка. он не будет влиять на ваши данные, если вы используете тот же самый стартовый цилиндр.

# df -h  <<1>>

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      6.0G  2.0G  3.7G  35% / 
tmpfs            15G     0   15G   0% /dev/shm

# fdisk -l  <<2>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 cylinders
Units = cylinders of 1649 * 512 = 844288 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           2        7632     6291456   83  Linux

# fdisk /dev/xvda  <<3>>

WARNING: DOS-compatible mode is deprecated. It strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): u  <<4>>
Changing display/entry units to sectors

Command (m for help): p  <<5>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *        2048    12584959     6291456   83  Linux

Command (m for help): d  <<6>>
Selected partition 1

Command (m for help): n  <<7>>
Command action
   e   extended
   p   primary partition (1-4)
p  <<8>>
Partition number (1-4): 1  <<9>>
First sector (17-41943039, default 17): 2048  <<10>>
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): <<11>>
Using default value 41943039

Command (m for help): p <<12>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1            2048    41943039    20970496   83  Linux

Command (m for help): a  <<13>>
Partition number (1-4): 1  <<14>>


Command (m for help): w  <<15>>
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

# reboot  <<16>>

<wait>

# df -h  <<17>>
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  2.0G   17G  11% / 
tmpfs            15G     0   15G   0% /dev/shm

# resize2fs /dev/xvda1  <<18>>
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 5242624 blocks long.  Nothing to do!

Ответ 2

Следующие шаги очень просто очень хорошо работают для меня:

# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  30G  0 disk 
└─xvda1 202:1    0   8G  0 part /

Выполните следующую команду как root:

# yum install cloud-utils-growpart

# growpart /dev/xvda 1

# reboot

После перезагрузки:

# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  30G  0 disk 
└─xvda1 202:1    0  30G  0 part /

Ответ 3

Дополнение к адалю Ахмада Ответ:

Если вы пытаетесь запустить экземпляр из AMI с разделом подкачки, вам потребуются дополнительные шаги.

Например, если ami содержит следующее:

# fdisk -l
Disk /dev/xvde: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 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: 0xe211223f

    Device Boot      Start         End      Blocks   Id  System
/dev/xvde1   *           1        1291    10369926   83  Linux
/dev/xvde2            1292        1305      112455   82  Linux swap / Solaris

Если мне нужно обновить свою емкость до 20 ГБ, я создам AMI и попытаюсь запустить еще один экземпляр с пространством 20 ГБ. После этого, если я попытаюсь выполнить вышеуказанные шаги, дисковое пространство не будет увеличиваться, так как есть раздел xvde2 между xvde1 и новым пространством.

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1            9.8G  7.5G  1.8G  81% /

$ fdisk -l

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: 0xe211223f

    Device Boot      Start         End      Blocks   Id  System
/dev/xvde1   *           1        1291    10369926   83  Linux
/dev/xvde2            1292        1305      112455   82  Linux swap / Solaris

$ resize2fs /dev/xvde1 
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 2592481 blocks long.  Nothing to do!

В этом случае выполните следующие

  • Удалить оба раздела
  • Создайте новый основной раздел с новым требуемым размером минус размер для пространства подкачки.
  • Добавить флаг загрузки для этого раздела
  • Создать второй раздел
  • Отметьте его как своп
  • записать изменения и перезагрузить
  • Расширить раздел 1
  • Настройка обмена ИЛИ

Удаление раздела 1 Выбранный раздел 1

Command (m for help): d  <<6>>
Partition number (1-4): 1 <<6.0.1>> 

Удаление раздела 2 Выбранный раздел 2

Command (m for help): d  <<6.2>>

Создание измененного первичного раздела 1

Command (m for help): n  <<7>>
Command action    
e   extended    
p   primary partition (1-4) 
p  <<8>> 
Partition number (1-4): 1  <<9>> 
First sector (17-41943039, default 17): 2048  <<10>> 
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):<<NEW_UPPER_LIMIT>> <<11>>

УБЕДИТЕСЬ: 2048 должно быть заменено исходным стартовым сектором или система не загрузится. NEW_UPPER_LIMIT будет новым номером сектора для верхнего предела, а остальное останется для обмена. Для поддержания одно и то же пространство подкачки, вычесть исходный начальный и конечный сектор числа, а затем вычесть результат из 41943039 (или ваш верхний предел)

Создание раздела подкачки

Command (m for help): n  <<12>>
Command action    
e   extended    
p   primary partition (1-4) 
p  <<13>>
Partition number (1-4): 2  <<14>> 
First sector (<<NEW_UPPER_LIMIT+1>>-41943039, default <<NEW_UPPER_LIMIT+1>>): <<USE_DEFAULT>>  <<15>> 
Last sector, +sectors or +size{K,M,G}(<<NEW_UPPER_LIMIT+1>>-41943039,default 41943039):<<USE_DEFAULT>> <<16>>
Using default value 41943039

Добавление загрузочного бита для раздела 1

Command (m for help): a  <<17>>
Partition number (1-4): 1  <<18>>

Маркировка раздела 2 как своп

Command (m for help): l <<19>>

Теперь вы увидите список файловых систем. Обратите внимание на то, что соответствует обмену Linux (скажем, 82)

Command (m for help): t <<20>>
Partition number (1-4): 2 <<21>>
Hex Code (type l to list codes) : 82 <<22>>

Запись изменений и перезагрузка

Command (m for help): w  <<23>> The partition table has been altered!
....

$ sudo reboot

После перезагрузки

resize2fs /dev/xvde1

Это изменит размер вашей fs

Теперь, чтобы использовать второй раздел в качестве свопа

$ mkswap /dev/<<SECOND SWAP PARTITION(run fdisk -l to get the name)>>
$ swapon /dev/<<SECOND SWAP PARTITION(run fdisk -l to get the name)>>

Вы можете проверить файл /proc/swaps, чтобы проверить

$ cat /proc/swaps

Теперь добавьте следующее в /etc/fstab, чтобы эти изменения были постоянными.

В конце /etc/fstab (открыть с помощью nano или vi и т.д.)

/dev/<<SECOND SWAP PARTITION>>   swap    swap   defaults   0 0

Сохранить и выйти

Перезагрузите и проверьте

Ответ 4

У меня такая же проблема. Все, что мне нужно сделать, это

  • перезагрузить экземпляр
  • выполните команду

    sudo resize2fs -f /dev/xxxx
    

и это хорошо работает для меня.