LINUX.ORG.RU

Как увеличить размер диска qcow2 с NTFS?


0

0

в man qemu-img ничего похожего не нашел.

Просмотрел вот эту статью
http://qemu-forum.ipi.fi/viewtopic.php?p=12362
мне стало страшно (они там раздел и MBR запись копируют руками, а потом что-то патчат в hexedit).

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

Ответ на: комментарий от pupok

вернее сначала меняем размер контейнера, подвешиваем его на /dev/nbd0 с помощью kvm-nbd, запускаем «parted /dev/nbd0», смотрим номер сектора с которого начинается NTFS-раздел, сносим старую таблицу разделов, создаём новую, создаём новый раздел начиная с того же сектора где раньше начиналась NTFS, ну и напоследок запускаем ntfsresize.

pupok ★★
()
Ответ на: комментарий от pupok

смотрим номер сектора с которого начинается NTFS-раздел,

сносим старую таблицу разделов, создаём новую


Ужасает сама мысль, о том, что это можно делать без gparted

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

ArsenShnurkov
() автор топика
Ответ на: комментарий от ArsenShnurkov

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

слишком много всяких вариантов (например вдруг это расширенный раздел, а вдруг при этом сначала надо расширить контейнер и потом уже раздувать расширенный раздел, и.т.д). Кстати, в конце когда на последнем шаге раздуешь саму NTFS — по ней надо пройтись fsck. Она только под виндой нормально работает.

pupok ★★
()
Ответ на: комментарий от pupok

я пока сделал такое:
qemu-img convert disk.qcow2 -O raw disk.raw
losetup /dev/loop0 disk.raw
blockdev --rereadpt /dev/loop0
(здесь по-идее должно создаться /dev/loop0p1 и можно будет при помощи gparted растянуть),
но выдается сообщение:
BLKRRPART: Invalid argument
а если не создавать /dev/loop0p1, то уже gparted скажет:

GParted 0.5.2 
 
Libparted 2.3 
Увеличить размер /dev/loop0p1 с 9.99 ГБ до 30.00 ГБ  00:00:00    ( ОШИБКА ) 
         
калибровка /dev/loop0p1  00:00:00    ( УСПЕШНО ) 
         
путь: /dev/loop0p1 
начало: 63 
конец: 20948759 
размер: 20948697 (9.99 ГБ) 
проверить на ошибки файловую систему /dev/loop0p1 и устранить их, если это возможно  00:00:00    ( ОШИБКА ) 
         
ntfsresize -P -i -f -v /dev/loop0p1 
         
ntfsresize v2.0.0 (libntfs 10:0:0) 
ERROR(2): Failed to check '/dev/loop0p1' mount state: Нет такого файла или каталога 
Probably /etc/mtab is missing. It's too risky to continue. You might try 
an another Linux distro. 

ArsenShnurkov
() автор топика
Ответ на: комментарий от ArsenShnurkov

Пробую теперь
kpartx -a -v /dev/loop0
file -s /dev/mapper/loop*
ln -s /dev/mapper/loop0p1 /dev/loop0p1
gparted /dev/loop0
(изменить размер в gparted)
rm /dev/loop0p1
kpartx -d /dev/loop0
losetup -d /dev/loop0

ArsenShnurkov
() автор топика
Ответ на: комментарий от ArsenShnurkov
losetup /dev/loop0 disk.raw
blockdev --rereadpt /dev/loop0

я же дал выше ссылку, не надо никаких losetup и тем более не стоит играться со системным списком блочных устройств. Рискуешь не только NTFS потерять, но и свою рабочую систему. У тебя уже всё гораздо сложнее и опаснее чем просто удалить в parted старый раздел и создать новый как я говорил.

pupok ★★
()
Ответ на: комментарий от pupok

хотя нет, конечно losetup нужен будет, e.g. если NTFS раздел начинается с сектора 63

losetup -o $((63*512)) /dev/loop0 /dev/nbd0
ntfsresize ... /dev/loop0 ...

pupok ★★
()

я делал так:

* создавал новый диск нужного размера
* присоединял его к виртуальной машинке
* запускал машину с gparted livecd
* копировал содержимое маленького диска на большой
* ну а потом маленький диск отсоединяешь, а большой ставишь на место маленького

gorilych ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.