Как разделить NTFS-раздел на меньший диск, не оставляя места для полного образа

372
JPT

Время от времени у меня возникает следующая проблема:

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

Вы можете просто скопировать весь диск на временный диск, а затем сжать. Но не хватает ли места?

0
может попробовать ntfsclone? JPT 6 лет назад 1
«Сбой диска» <- вот ваша проблема. В противном случае просто уменьшите раздел на исходном диске перед копированием. Затем, если вы действительно хотите, вы можете снова развернуть раздел на исходном диске. Я бы просто использовал живой диск Gparted с https://gparted.sourceforge.io/ BeowulfNode42 6 лет назад 0
Ну, я предпочитаю не связываться с исходным диском без резервной копии. Но, конечно, сначала вы можете сделать стандартное резервное копирование с помощью partclone. JPT 6 лет назад 0

1 ответ на вопрос

1
JPT

С пункта 16 не работает. Возможно, потому что там было устаревшее устройство петли, которое я не удалял.

partclone сырой дамп в разреженное изображение

Это решение опасно для ваших данных. Попробуйте, только если вы понимаете, что делаете и знакомы с ddустройствами. Я не буду нести ответственность за любую потерю данных.

Прежде чем мы начнем:

  • Не используйте эту процедуру для зеркалирования диска, который физически поврежден, потому что

    • partclone нужна здоровая файловая система для работы

    • эта процедура намного сложнее, чем выполнение, ddпоэтому вам, вероятно, придется повторить ее несколько раз, пока вы не добьетесь успеха - что приведет к большей нагрузке на сломанный диск

    • для сломанных дисков вы должны использовать safecopyвместо этого, потому что ddпрерывает на плохих секторах

  • Вам нужно до 2 x свободного места на временном диске.

  • Я введу sdXXдля любой команды, которая может уничтожить данные, если вы забыли настроить команду. Это не касается циклов, поэтому НЕ используйте никакие другие устройства циклов во время следующего процесса, чтобы избежать случайного переопределения ценных данных.

  • Если вы не где - то и удалить изображение, убедитесь, что первым размонтировать ничего указывающего на него, а затем удалите устройства контура: kpartx -dv <image>. Это может вызвать серьезные проблемы, если вы используете неправильные петлевые устройства! Я полагаю, что моя проблема вызвана устаревшим устройством петли ...

  • Найдите исправления для общих проблем в конце этого ответа.

Поехали

  1. получить размер вашего исходного диска

    sudo fdisk -l /dev/sda output: Disk /dev/sda: 465,8 GiB, 500107862016 bytes, 976773168 sectors 
  2. читать исходный макет раздела в изображение

    sudo dd if=/dev/sda of=sparse.img bs=1M count=1 
  3. заполните изображение «ничем» до указанного выше размера. - Это не займет места на диске.

    sudo dd if=/dev/zero of=sparse.img bs=1 count=0 seek=500107862016 
  4. проверьте, не активны ли другие петлевые устройства - если выход не пустой, см. раздел устранения неполадок

    losetup -l -a 
  5. проверьте, совпадает ли расположение разделов с исходным диском

    fdisk -l sparse.img 
  6. создать петлевые устройства для доступа к разделам в изображении

    sudo kpartx -av sparse.img  output: add map loop0p1 (253:0): 0 976771072 linear 7:2 2048 
  7. считывать данные в изображение с помощью partclone- это увеличит использование пространства на «размер данных» плюс «накладные расходы».

    sudo partclone.ntfs -s /dev/sda1 -o /dev/mapper/loop0p1 -b -L sparse.log 
  8. удалить исходный диск, чтобы сохранить его

  9. использование усадки gparted- должно быть как минимум на 10% меньше, чем целевой диск

    • создавать ссылки, потому gpartedчто не понимает kpartxсозданных разработчиков .

      ln -s /dev/mapper/loop0p1 sparse.img1 
    • использовать gpartedдля сокращения раздела

      sudo gparted sparse.img 
  10. в качестве альтернативы вы можете сжать, используя, ntfsresizeно вы должны сжать раздел тоже потом.

    • получить минимальный размер

      sudo ntfsresize -i /dev/mapper/loop0p1 
    • изменить размер теста

      sudo ntfsresize -n -s 100G /dev/mapper/loop0p1 
    • реальное изменение размера - это увеличит использование пространства до «размера данных»

      sudo ntfsresize -s 100G /dev/mapper/loop0p1 
    • ТОДО: термоусадочная перегородка

  11. (ненужный, потому что сжатый не увеличенный?) удаляет и воссоздает устройства петли, потому что размер раздела изменился

    sudo kpartx -dv sparse.img  sudo kpartx -av sparse.img  
  12. (необязательно) усеченное изображение TODO

  13. проверить с помощью ntfsresize- для меня это дает хороший ответ

    sudo ntfsresize -i /dev/mapper/loop0p1 
  14. вставьте целевой диск - проверьте, правильно ли вы вставили диск

  15. (не работает потому что ntfsresizeпометил фс грязно) partclone образ на новый диск

    sudo partclone.ntfs -o /dev/sdXX -s /dev/mapper/loop0p1 -b -L restore.log 
  16. вместо ddэтого образ для нового диска - либо не указывайте размер, либо превышайте размер сокращенного раздела на 10%

    sudo dd if=sparse.img of=/dev/sdXX 
  17. проверьте с помощью ntfsresize- FAILS для меня, это не должно происходить, так как изображение было в порядке, и мы создали идентичную копию изображения !!!

    sudo ntfsresize -i /dev/sda1 
  18. удалить устройства петли

    sudo kpartx -dv sparse.img 
  19. удалите все петлевые устройства, которые не были удалены должным образом - если они все еще сохраняются, перезагрузите компьютер или поищите в Интернете.

    sudo losetup -D 
  20. Наконец, вы должны попробовать загрузить диск, а затем запустить Windows chkdsk / f. После этого используйте, gpartedчтобы расширить раздел до его полного размера.

Поиск проблемы:

  • Если ntfsresizeили gpartedнет доступа к образу: exec chkdsk /fиз windows на исходном диске. НЕ используйте ntfsfix. Любая проверка NTFS для Linux?

  • Если kpartxне удается создать петлевые устройства: проверьте losetupи удалите неиспользуемые.

  • Если вы хотите избавиться от устаревших петлевых устройств, удалите их sudo losetup -dили выполните поиск в Интернете.

Похожие вопросы