С пункта 16 не работает. Возможно, потому что там было устаревшее устройство петли, которое я не удалял.
partclone
сырой дамп в разреженное изображение
Это решение опасно для ваших данных. Попробуйте, только если вы понимаете, что делаете и знакомы с dd
устройствами. Я не буду нести ответственность за любую потерю данных.
Прежде чем мы начнем:
Не используйте эту процедуру для зеркалирования диска, который физически поврежден, потому что
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
чтобы расширить раздел до его полного размера.
Поиск проблемы:
Если
ntfsresize
илиgparted
нет доступа к образу: execchkdsk /f
из windows на исходном диске. НЕ используйтеntfsfix
. Любая проверка NTFS для Linux?Если
kpartx
не удается создать петлевые устройства: проверьтеlosetup
и удалите неиспользуемые.Если вы хотите избавиться от устаревших петлевых устройств, удалите их
sudo losetup -d
или выполните поиск в Интернете.