Як розділити розділ NTFS на менший диск, не маючи місця для повного зображення


0

Раз у раз у мене виникає така проблема:

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

Ви можете просто зобразити весь диск на тимчасовому диску, а потім зменшити. Але якщо місця не вистачає?


1
може спробувати ntfsclone?
JPT

"Диск виходить з ладу" <- там є ваша проблема. Інакше перед тим, як скопіювати, просто зменшіть розділ на вихідному диску. Тоді, якщо ви дійсно хочете, ви можете знову розгорнути розділ на вихідному диску. Я просто використовую живий диск Gparted від gparted.sourceforge.io
BeowulfNode42

Ну, я вважаю за краще не возитися з джерелом диска без резервної копії. Але звичайно, ви можете спочатку зробити стандартне резервне копіювання з partclone.
JPT

Відповіді:


1

Ще не працює з пункту 16. Можливо, тому, що там був застійний пристрій, який я не видаляв.

partclone сирий відвал у розрідженому зображенні

Це рішення небезпечне для ваших даних. Спробуйте лише якщо ви розумієте, що ви робите, і знайомі з ними ddта пристроями. Я не несу відповідальності за будь-яку втрату даних.

Перш ніж розпочати:

  • Не використовуйте цю процедуру для дзеркального відображення диска, який фізично пошкоджений

    • partclone потрібна здорова файлова система для роботи

    • ця процедура є набагато складнішою, ніж робити, ddтому, ймовірно, доведеться повторити її кілька разів, поки вам це не вдасться - приносите більше напруги на зламаний диск

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

  • На тимчасовому диску ви повинні мати до 2 х вільного місця розміром даних .

  • Я вступлю 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
      
    • TODO: скорочення перегородки

  11. (непотрібно, оскільки усаджений не збільшений?) видалити та відтворити петлеві пристрої, оскільки розмір розділу змінився

    sudo kpartx -dv sparse.img 
    sudo kpartx -av sparse.img 
    
  12. (необов’язково) Урізання зображення TODO

  13. перевірити за допомогою ntfsresize- для мене це дає нормальну відповідь

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

  15. (не працює, тому що ntfsresizeпозначив fs брудним) 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- ЗНАЧЕННЯ для мене, цього не повинно статися, оскільки зображення було нормальним, і ми створили ідентичну копію зображення !!!

    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з вікон на вихідному диску. НЕ використовуйте ntfsfix. Будь-яка перевірка NTFS для Linux?

  • Якщо kpartxне вдається створити циклічні пристрої: перевірте losetupта видаліть невикористані.

  • Якщо ви хочете позбутися застарілих циклічних пристроїв, видаліть sudo losetup -dабо виконайте пошук в Інтернеті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.