Це залежить від того, для чого саме розбивається розділ, і яка мета копії. Однак я скажу, що загалом dd
це невідповідний інструмент для резервного копіювання файлових систем . Це теж не було призначено.
Це витратить багато часу на копіювання порожніх розділів розділу.
Це може призвести до невідповідностей, якщо файлова система наразі встановлена, частково тому, що це сутність на рівні ОС і, можливо, не синхронізується з базовим пристроєм блоку. Виклик sync
спочатку не дуже допоможе в цьому, оскільки процес не миттєвий.
Використовуйте cp -a
або rsync
замість цього. Тоді вам потрібно створити розділ призначення, так що це не так просто, як легко випасти, але він набагато безпечніший і гнучкіший. Якщо вам потрібно створити образ файлової системи , див. Нижче.
Якщо ви збираєтесь скопіювати кореневу файлову систему, абсолютно не використовуйте dd
. Ви повинні користуватися чимось на зразок rsync -ax
(або cp -ax
в окремих каталогах з топлевом), оскільки в купі копії НЕ МОЖЕ бути . У Linux це включає:
/dev
/lost+found
/mnt
/proc
/run
/sys
/tmp
Деякі з них - це фактично інтерфейси ядра, а не реальні каталоги на диску. Якщо ви копіюєте їх, ви копіюєте купу інформації, яка не застосовуватиметься в копії; якщо ви спробуєте запустити систему з нею, це буде просто витрачати витрачений простір, оскільки реальний інтерфейс буде встановлений зверху. Інші містять тимчасову інформацію, яку використовують запущені процеси, і це більше проблема, оскільки система не зможе розібратися зі сміттям, якщо ви скопіюєте її.
Якщо ви хочете створити файл зображення кореневої файлової системи (або будь-якої файлової системи), створіть порожній файл зображення - це відповідне використання для dd
:
dd if=/dev/zero of=whatever.img bs=1024 count=1000000
Це зображення на 1024 Мб (1000000 * 1024). Налаштуйте, count
якщо ви хочете, щоб він був іншого розміру Створіть, наприклад, ext
файлову систему у файлі :
mke2fs whatever.img
Він попередить вас, що це не справжній блок пристрою. Продовжуйте. Тепер змонтуйте файл зображення:
mount whatever.img /mnt/img
/mnt/img
повинен існувати, але міг би нічого. Ви можете rsync
(або cp -a
) увійти /mnt/img
. Вміст залишиться всередині, whatever.img
коли ви його відключите.
Однак ...
Щоб було зрозуміло, використовуйте лише описаний метод зображення файлової системи, якщо вам абсолютно потрібен файл зображення з будь-якої причини. Якщо ваша мета - скопіювати розділ на інший жорсткий диск, вам не потрібно зображення : створити новий розділ із порожньою файловою системою на цьому диску, встановити його та скопіювати туди. Ви можете замість цього просто помістити вміст файлової системи у порожній каталог та заархівувати його:
tar -czf myarchive.tar.gz [the directory path]
Потім ви можете розгорнути це у існуючому (порожньому чи іншому) розділі, розмістивши його у верхньому рівні та скориставшись:
tar -xzf myarchive.tar.gz
Остерігайтеся, що вони перезаписують наявні файли, якщо їхні шляхи збігаються з чимось в архіві. Інакше він залишить існуючу ієрархію каталогів однаковою.