среда, 5 сентября 2012 г.

Сжатие виртуального диска с NTFS


Необходимо сжать диск с находящимся на нем разделом ntfs (загрузочный раздел). Причем сжать необходимо сильно (было с ~90ГБ до 12ГБ).

Решение:

1. Делаем бэкап виртуалки, без этого никуда.

2. Заходим в винду, в ней отключаем виртуальную память и отключаем спящий режим. Перезагружаемся. Желательно еще сделать дефрагментацию, это уменьшить время сжатия раздела и уменьшит вероятность потерять файлы в дальнейших пунктах.

3. Перезагружаем виртуалку в SystemRescueCD.

4. Gparted (как и Norton PM) у меня отказались ресайзить раздел, ссылаясь на всякую фигню, по-этому закрываем все эти гуи и идем в консоль, где делаем нечто вроде:
ntfsfix /dev/sda1

5. После удачных фиксов запускаем ресайз:
ntfsresize -s 12G /dev/sda1

6. Все прошло удачно? Если нет, то это скорее всего не повредит раздел. Перегружаемся в винду, удостоверяемся, что раздел изменил размер и запускаем chkdsk. У меня почему-то после чекдиска освободилось еще где то около гига. Снова вырубаем винду.

7. Создаем в виртуалке новый диск с размером, равным нашему разделу (ну или чуть больше, в разных местах размер дискового пространства указавается по-разному, по-этому точно до метра вряд ли получится).

8. Снова грузимся в SystemRescueCD. На новом диске создаем бутовый ntfs раздел.

9. Заходим в консоль и делаем:
ntfsresize -i /dev/sda1
Утилита покажет нам характеристики раздела, главной из которых для нас является размер кластера. В моем случае он был равен 4096 байт. затем запускаем копирование раздела на новый диск:
dd bs=4096 if=/dev/sda1 of=/dev/sdb1
ВАЖНО, чтобы bs равнялся размеру кластера исходного раздела. Почему, не понятно, но так пишут люди. Теперь ждем, пока дд не завершится с ошибкой.

10. Выключаем виртуалку. Отключаем от неё старый диск. Новому желательно дать тот же номер порта, какой был у старого. Правда у меня и без этого заработало.

11. Грузимся в винду, включаем виртуальную память, снова делаем chkdsk.

ЗЫ: предполагается, что /dev/sda1 - это исходный раздел, а /dev/sdb1 - новый созданный.
Таккже предполагается после всех операций склонировать/сбэкапить виртуалку, после чего удаль оставшийся мусор.

Комментариев нет:

Отправить комментарий