Жодне з інших рішень не буде працювати, якщо гучність використовується як кореневий (завантажувальний) пристрій.
У новоствореного диска відсутній завантажувальний розділ, тому для того, щоб екземпляр міг використовувати його в якості кореневого тома, йому потрібно буде встановити GRUB та встановити деякі прапори правильно.
Моє (на сьогоднішній день працююче ) рішення для зменшення обсягу кореня:
Передумови: У нас є екземпляр A, об'єм кореня якого ми хочемо скоротити. Назвемо цей том VA. Ми хочемо зменшити VA з 30 Гб, скажімо, 10 Гб
- Створіть новий екземпляр ec2, B, з тією ж ОС, що і екземпляр A. У якості сховища виберіть том, аналогічний типу VA, але розміром 10 Гб. (або будь-який розмір цілі). Отже, тепер у нас є екземпляр B, який використовує цей новий том (назвемо його VB) як кореневий том.
- Після запуску нового екземпляра (B). Зупиніть його і від'єднайте об'єм кореня (VB).
ПРИМІТКА. Наступні кроки здебільшого зроблені з рішення @bill:
Зупиніть екземпляр, який ви хочете змінити розмір (A).
Створіть знімок обсягу VA, а потім створіть об'єм "SSD загального призначення" з цього знімка. Цей том ми будемо називати VASNAP.
Заверніть новий екземпляр за допомогою Amazon Linux, ми називаємо цей екземпляр C. Ми просто використовуватимемо цей екземпляр для копіювання вмісту VASNAP у VB. Напевно, ми могли також використовувати екземпляр A для виконання цих кроків, але я вважаю за краще це робити в незалежній машині.
До прикладу C. / dev / xvdf для VB додайте такі томи. / dev / xvdg для VASNAP.
Перезавантажте екземпляр C.
Увійдіть до екземпляра C через SSH.
Створіть ці нові каталоги:
mkdir /source /target
- Відформатуйте основний розділ VB за допомогою файлової системи ext4:
mkfs.ext4 /dev/xvdf1
Якщо у вас немає помилок, перейдіть до кроку 11. В іншому випадку, якщо у вас цього немає /dev/xvdf1
, вам потрібно створити розділ, виконавши наступні дії i-vii:
i) Якщо /dev/xvdf1
з будь-якої причини не існує, вам потрібно створити його. Спочатку введіть:
sudo fdisk /dev/xvdf
.
ii) Протріть диск, ввівши:
wipefs
iii) Створіть новий розділ, ввівши:
n
iv) Введіть, p
щоб створити основний розділ
v) Продовжуйте натискання клавіші Enter, щоб продовжити налаштування за замовчуванням.
vi) Коли він знову запитує команду, введіть, w
щоб написати зміни та вийти.
vii) Перевірте наявність у вас /dev/xvdf1
розділу:
lsblk
Ви повинні побачити щось на кшталт:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 250G 0 disk
└─xvda1 202:1 0 250G 0 part
xvdf 202:80 0 80G 0 disk
└─xvdf1 202:81 0 80G 0 part
xvdg 202:96 0 250G 0 disk
└─xvdg1 202:97 0 250G 0 part
Тепер переходимо до кроку 11.
- Змонтуйте його до цього каталогу:
mount -t ext4 /dev/xvdf1 /target
- Це дуже важливо, для файлової системи потрібен e2label для Linux, щоб розпізнати його та завантажити його, використовуйте "e2label / dev / xvda1" на активному екземплярі, щоб побачити, яким він повинен бути, у цьому випадку мітка: "/"
e2label /dev/xvdf1 /
- Встановити VASNAP на / джерело:
mount -t ext4 /dev/xvdg1 /source
- Скопіюйте вміст:
rsync -vaxSHAX /source/ /target
Примітка. Немає "/" наступного "/ цільового". Також може бути кілька помилок щодо символьних посилань та attrs, але зміна розміру все-таки була успішною
- Umount VB:
umount /target
Ще в консолі AWS: Dettach VB від екземпляра C, а також віддаляємо VA від A.
Приєднайте новий екземпляр (VB) до екземпляра як: "/ dev / xvda"
Завантажувальний примірник A, тепер його кореневий пристрій становить 10 Гб :)
Видаліть і екземпляри B і C, а також усі томи, крім VB, що є кореневим томом екземпляра A.