Не використовуйте цю процедуру для дзеркального відображення диска, який фізично пошкоджений
partclone
потрібна здорова файлова система для роботи
ця процедура є набагато складнішою, ніж робити, dd
тому, ймовірно, доведеться повторити її кілька разів, поки вам це не вдасться - приносите більше напруги на зламаний диск
для зламаних дисків ви повинні використовувати safecopy
натомість, оскільки dd
перериває погані сектори
На тимчасовому диску ви повинні мати до 2 х вільного місця розміром даних .
Я вступлю 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
TODO: скорочення перегородки
(непотрібно, оскільки усаджений не збільшений?) видалити та відтворити петлеві пристрої, оскільки розмір розділу змінився
sudo kpartx -dv sparse.img
sudo kpartx -av sparse.img
(необов’язково) Урізання зображення TODO
перевірити за допомогою ntfsresize
- для мене це дає нормальну відповідь
sudo ntfsresize -i /dev/mapper/loop0p1
вставити цільовий диск - двічі перевірте, чи правильно ви вставили диск
(не працює, тому що ntfsresize
позначив fs брудним) 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
- ЗНАЧЕННЯ для мене, цього не повинно статися, оскільки зображення було нормальним, і ми створили ідентичну копію зображення !!!
sudo ntfsresize -i /dev/sda1
видалити петлеві пристрої
sudo kpartx -dv sparse.img
видаліть усі петльові пристрої, які не були видалені чистою стороною - якщо вони все ще зберігаються, перезавантажте або пошукайте в Інтернеті це.
sudo losetup -D
Нарешті, слід спробувати завантажувати диск, а потім запустити Windows chkdsk / f
. Після цього використовуйте gparted
для розширення розділу до повного розміру.