Не используйте эту процедуру для зеркалирования диска, который физически поврежден, потому что
partclone
нужна здоровая файловая система для работы на
эта процедура намного сложнее, чем выполнение dd
поэтому вам, вероятно, придется повторить ее несколько раз, пока вы не добьетесь успеха - что приведет к большей нагрузке на сломанный диск
для сломанных дисков вы должны использовать safecopy
вместо этого, потому что dd
прерывает работу на поврежденных секторах
Вам нужно до 2 x свободного места на временном диске.
Я sdXX
для любой команды, которая может уничтожить данные, если вы забыли настроить команду. Это не касается циклов, поэтому НЕ используйте никакие другие устройства циклов во время следующего процесса, чтобы избежать случайного переопределения ценных данных.
Если вы где-то потерпели неудачу и удалили изображение, обязательно сначала размонтируйте все, что указывает на него, а затем удалите устройства цикла: kpartx -dv <image>
. Это может вызвать серьезные проблемы, если вы используете неправильные петлевые устройства! Я полагаю, что моя проблема вызвана устаревшим устройством петли ...
Найдите исправления для общих проблем в конце этого ответа.
получить размер вашего исходного диска
sudo fdisk -l /dev/sda
output: Disk /dev/sda: 465,8 GiB, 500107862016 bytes, 976773168 sectors
читать исходный макет раздела в изображение
sudo dd if=/dev/sda of=sparse.img bs=1M count=1
заполните изображение "ничем" до указанного выше размера. - Это не займет места на диске.
sudo dd if=/dev/zero of=sparse.img bs=1 count=0 seek=500107862016
проверьте, не активны ли другие петлевые устройства - если выход не пустой, см. раздел устранения неполадок
losetup -l -a
проверьте, совпадает ли расположение разделов с исходным диском
fdisk -l sparse.img
создать петлевые устройства для доступа к разделам в изображении
sudo kpartx -av sparse.img
output: add map loop0p1 (253:0): 0 976771072 linear 7:2 2048
читать данные в образ с помощью partclone
- это увеличит использование пространства на "размер данных" плюс "накладные расходы".
sudo partclone.ntfs -s /dev/sda1 -o /dev/mapper/loop0p1 -b -L sparse.log
удалить исходный диск, чтобы сохранить его
уменьшить с помощью gparted
- должно быть как минимум на 10% меньше, чем целевой диск
создавать ссылки, потому что gparted
не понимает созданных разработчиков kpartx
.
ln -s /dev/mapper/loop0p1 sparse.img1
используйте gparted
для сокращения раздела
sudo gparted sparse.img
в качестве альтернативы вы можете сжать с помощью ntfsresize
но затем вам придется сокращать и раздел.
получить минимальный размер
sudo ntfsresize -i /dev/mapper/loop0p1
изменить размер теста
sudo ntfsresize -n -s 100G /dev/mapper/loop0p1
реальное изменение размера - это увеличит использование пространства до "размера данных"
sudo ntfsresize -s 100G /dev/mapper/loop0p1
ТОДО: термоусадочная перегородка
(ненужный, потому что уменьшен, не увеличен?) удалить и воссоздать петлевые устройства, так как размер раздела изменился
sudo kpartx -dv sparse.img
sudo kpartx -av sparse.img
(необязательно) усеченное изображение TODO
проверить с помощью ntfsresize
- для меня это дает хороший ответ
sudo ntfsresize -i /dev/mapper/loop0p1
вставьте целевой диск - проверьте, правильно ли вы вставили диск
(не работает, потому что ntfsresize
пометил фс как грязный) partclone
образ на новый диск
sudo partclone.ntfs -o /dev/sdXX -s /dev/mapper/loop0p1 -b -L restore.log
вместо этого dd
образ на новый диск - либо не указывайте размер, либо превышайте размер сокращенного раздела на 10%
sudo dd if=sparse.img of=/dev/sdXX
проверьте с помощью ntfsresize
- FAILS для меня, это не должно происходить, так как изображение было в порядке, и мы создали идентичную копию изображения !!!
sudo ntfsresize -i /dev/sda1
удалить устройства петли
sudo kpartx -dv sparse.img
удалите все петлевые устройства, которые не были удалены должным образом - если они все еще сохраняются, перезагрузите компьютер или поищите в Интернете.
sudo losetup -D
Наконец, вы должны попытаться загрузить диск, а затем запустить Windows chkdsk / f
. После этого используйте gparted
чтобы расширить раздел до его полного размера.