Команда dd (Визначення набору даних) - це простий, корисний і напрочуд простий у використанні інструмент; За допомогою цього інструменту ви можете зробити те ж саме на пристроях: дисках і розділах, як у комерційних програмах, таких як Norton Ghost, в Windows або безкоштовних програмах, таких як CloneZilla, в Linux, лише за допомогою короткого командного рядка.
Основний синтаксис:
Найбільш базовим синтаксисом для використання команди dd буде такий:
sudo dd if=origen of=destino
де якщо означає "вхідний файл = вхідний файл“, Тобто те, що ви хочете скопіювати та засобів "вихідний файл = вихідний файл“, Тобто файл призначення (куди будуть скопійовані дані);походження та Призначенням можуть бути пристрої (CD або DVD-пристрій для читання, жорсткий диск, дискета, накопичувач, розділ тощо), файл резервної копії чи образ диска тощо, але не папки та підпапки.
Для безперебійного використання цієї команди першим ділом завжди має бути чітко зрозуміло, які розділи / жорсткі диски називаються в Linux (/ dev / sda1, наприклад; / dev походить від device = device, англійською мовою). щоб знати вихідний та кінцевий диск / розділ, те, що ми можемо легко дізнатись за допомогою команди sudo fdisk -lo з деякою графічною програмою розділів, такою як gparted. Всю інформацію про команду dd можна отримати у команди man dd та info dd,
Цю команду слід використовувати з обережністю, завжди перевіряючи порядок та назву дисків / розділів, оскільки, як і диск, який клонують, він стирає його в найкоротші терміни.
Синтаксис із командою pv: Використання команди dd з попереднім синтаксисом має невеликий недолік, оскільки це дуже зарезервована команда - вона не дає інформації - оскільки при її виконанні підказка терміналу залишається нерухомою, тому ми не знаємо це те, що відбувається, і скільки часу залишається для того, щоб закінчити виконання. Цю незначну незручність можна вирішити, додавши команду pv, (*) - яка діє як термінальна труба, яка вимірює дані, що проходять через неї - до синтаксису команди dd, так що тепер синтаксис буде таким:
dd if=origen |pv|dd of=destino
В результаті ми отримали б своєрідний індикатор прогресу в терміналі, інформацію про передані байти, час його запуску та швидкість передачі - все це в реальному часі.
(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd = = dev / mmcblk0p2 1,630 ГБ 0:21:30 [1,12 МБ / с] [
Крім того, після закінчення він показує нам статистику швидкості передачі, загальної кількості переданих байтів і загального часу, необхідного для передачі всіх даних.
(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd of = / dev / mmcblk0p2 10530816 + 0 прочитаних записів <=> 10530816 + 0 записів, записаних 5391777792 байт (5.4 ГБ) скопійовано, 3873,48 с, 1,4 МБ / с 5,02 ГБ 1:04:33 [1,33 МБ / с] [<=> 10530816 + 0 прочитаних записів <=> 10530816 + 0 записів, записаних 5391777792 байт (5.4 ГБ) скопійовано, 3873,48, 1,4 с, XNUMX МБ / с (alf) - (~) └──┤
(*) Перед виконанням будь-якого командного рядка з цим другим синтаксисом перевірте, чи встановлений у системі пакет pv, або встановіть його, якщо у нас його немає: обидва з Synaptic.
Давайте подивимось декілька практичних прикладів та варіантів цієї команди (у її версії з трюком, поясненим раніше з командою pv):
А) Про жорсткі диски та розділи:
= Клонувати жорсткий диск:
За допомогою цього ми б клонували hda-диск у hdb. (IDE-диски):
sudo dd if=/dev/hda |pv|dd of=/dev/hdb bs=1M
За допомогою цього ми б клонували sda-диск у sdb. (Диски SATA):
sudo dd if=/dev/sda |pv|dd of=/dev/sdb bs=1M
З опцією bs = 1M досягається, що і читання, і запис виконуються блоками по 1 мегабайт ((менше, це було б повільніше, але безпечніше, і з більшою кількістю ми ризикуємо втратити дані в дорозі).
Майте на увазі, що таким чином диск записується "як є", MBR, таблиця розділів, порожній простір тощо ..., тому Ви можете записувати лише на диск того самого або більшого розміру.
= Запишіть лише перший розділ (hda1) вихідного диска на цільовий диск (hdb):
sudo dd if=/dev/hda1 |pv|dd of=/dev/hdb bs=1M
= Записати весь диск (hda) до першого розділу (hdb1) цільового диска:
sudo dd if=/dev/hda |pv|dd of=/dev/hdb1 bs=1M
= Створіть образ - може бути bin або iso - з жорсткого диска (hda), в каталозі / home:
sudo dd if=/dev/hda |pv|dd of=/home/hda.bin
= Повністю стерти інформацію на диску: для цього заповніть диск випадковими символами п’ять разів. На диску не буде сліду інформації:
for n in {1..5}; do dd if=/dev/urandom |pv|dd of=/dev/hda bs=8b conv=notrunc;
= Видалити будь-який розділ і весь диск з будь-якого пристрою:
sudo dd if=/dev/zero |pv|dd of=/dev/sdx
(Повне стирання диска)
sudo dd if=/dev/zero |pv|dd of=/dev/sdxa
(Стирання розділу диска)
де: x - диск для стирання, a - розділ для стирання
Ця операція дуже корисна для повного стирання будь-якого розділу, крім того дані, які будуть стерті, не можуть бути відновлені, тому це низькорівневе і дуже безпечне стирання, дуже корисне, наприклад, коли накопичувачі заражаються вірусами з нашим дорогі вікна.
Б) На CD / DVD
= Створити / встановити .iso-образ із компакт-диска (або DVD)
Щоб створити образ .iso компакт-диска в каталозі / home:
sudo dd if=/dev/cdrom |pv|dd of=/home/imagendeCD.iso
Щоб встановити .iso-образ із компакт-диска:
sudo mount -o loop imagedeCD.iso /mnt/home
= Відновити подряпаний DVD (Це не відновлює весь DVD, в даному випадку лише читабельні сектори). Він також підходить для несправних жорстких дисків:
sudo dd if=/dev/cdrom |pv|dd of=/home/dvd_recuperado.iso conv=noerror,sync
Опція noerror використовується, щоб уникнути помилок читання в будь-якій ситуації.
В) Про MBR та VBS:
= Копіювати / відновити основний запис завантаження (MBR):
Щоб скопіювати MBR:
sudo dd if=/dev/hda |pv|dd of=mbr count=1 bs=512
Щоб відновити MBR:
sudo dd if=mbr |pv|dd of=/dev/hda
= Очистіть нашу MBR та таблицю розділів:
sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=512 count=1
= Очистіть MBR, але не торкайтесь таблиці розділів, (дуже корисно видалити GRUB, не втрачаючи даних у розділах):
sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=446 count=1
= Копіювати / відновити обсяг завантажувального сектора (VBS):
Щоб скопіювати VBS:
sudo dd if=/dev/hda |pv|dd of=/home/sector_arranque_hda count=1 bs=512
Щоб відновити VBS:
sudo dd if=/home/sector_arranque_hda |pv|dd of=/dev/hda
Г) Інші:
= Запис образу диска в нашому / домашньому каталозі, пропускаючи помилки диска (дуже корисно для дисків, які вмирають):
sudo dd conv=noerror if=/dev/hda |pv|dd of=~/home/imagen_disco_con_errores.iso
= Створити порожній файл розміром 1 Мб:
sudo dd if=/dev/zero |pv|dd of=archivo_nuevo_vacio bs=1024 count=1024
= Створіть файл обміну 2 Гб:
sudo dd if=/dev/zero |pv|dd of=/swapspace bs=4k count=2048M
mkswap /swapspace
swapon /swapspace
= Перетворити всі літери на великі регістри:
sudo dd if=miarchivo |pv|dd of=miarchivo conv=ucase
Використовуйте команду dd із програмою графічного середовища: Gdiskdump - це графічне середовище для цієї команди dd, яке полегшує завдання клонувати розділи або диски, швидко і легко. Його можна завантажити зі сторінки https://launchpad.net/gdiskdump/ Після того, як ми відкриваємо його, з правами root - sudo gdiskdump -, ми бачимо, що програма дуже проста у використанні, оскільки нам залишається лише сказати розділ або диск для клонування (Input Format) та призначення (Output Format).
Я мало не захворів діабетом через неправильне використання команди dd.
до речі, яка буде різниця з dd_rescue?
ddrescue за замовчуванням не зупиняється на помилках читання і намагається різними способами відновити нечитабельну інформацію.
ха-ха-ха, я також дуже погано використовував команду dd, вона набагато потужніша, ніж я думав.
Я коментую, що я вважаю, що кожен користувач арки в певний момент використовував
@ sieg84, різниця полягає в тому, що dd було перервано з деякою помилкою читання або пристрою, у цьому випадку цього не відбудеться, оскільки пошкоджений блок прочитає його певну кількість разів і продовжить з наступним, це також забезпечує перевагу в тому, що Ми можемо виконати його кілька разів на одному і тому ж зображенні, і воно не почнеться з нуля, а спробує завершити його.
Варто згадати, що dd_rescue я ним ніколи не користувався.
Якщо в qt для KDE створено графічний інтерфейс, який використовує цю команду? чи я повинен подати у відставку.?
Gdiskdump - це більше, ніж графічний інтерфейс для цієї команди (вона базується на ній), і хоча я не знаю, чи робили вони це в qt (я думаю, ні), це майже напевно працює для вас у KDE
дякую за роз'яснення.
Я використовував dd_rescue лише для копіювання ISO на USB (здебільшого тому, що в wiki openSUSE вони це мали).
dd_rescue tu.iso / dev / sdX
мені подобається те, що він показує індикатор прогресу:
http://box.jisko.net/i/110db781.png
Альф:
Нещодавно я бачив цю саму публікацію, розміщену в блозі Hatteras. Цілком імовірно, що він сприймає це не погано, але я не знаю, принаймні як ввічливість було б непогано посилатися на це. Так само він виграє у веб-позиціонуванні.
Я не хочу створювати з цим дилему, але на перший погляд стаття здається ідентичною на 95%, за винятком адаптованих вами скриншотів терміналів. Він навіть згадував свої джерела.
Цікаво визнаю, що | pv | не знав його.
Крел, я думаю, що джерело знаходиться у вікі ubuntu або привітанні з арками.
@krel, справа в Linux така:
Протягом своєї подорожі цим світом я читав і збирав речі, у мене є блокнот із понад 400 публікаціями, які я розмістив в Ubuntu Mexico, яка була спільнотою, де я зробив найбільший внесок у свої перші дні, на жаль, речі можна повторити, якщо переглянути велику кількість розміщувати в мережі, вони майже в однаковому порядку, справа в тому, що більшість коротше.
Я можу опублікувати ще 5 публікацій за тиждень, і ви можете знайти інші подібні чи ті самі, причина? Ubuntu має найбільше форумів / блогів в мережі.
Я ні в якому разі не думаю, що буде дилема, і, якщо адміністратори розглянуть можливість її видалення, це мене зовсім не образить і не турбує, я дотримуюсь правил і того, що випливає, серед моїх приміток я їх не маю в порядку) Я хочу додати щось щоб уникнути випадковості.
привіт
Ні для кого не загадка, що максимум 10% вмісту, що генерується в Інтернеті, є новим. За допомогою яких інші 90 копіюються, відновлюються або врятовуються, і я не кажу, що це менш важливо, навпаки, це форма поширення знань.
Однак там, де я зупиняюся, є щось інше. Коли у вас є блог такого типу, існує особиста мотивація допомогти і, можливо, навіть отримати за це визнання. У той же час я впевнений, що більшість тих, хто пише вміст про вільне програмне забезпечення, погоджуються з ідеєю спільного використання. Однак не будемо забувати, що навіть найблагородніші ліцензії, такі як BSD, просять визнання.
Крім того, посилання - це спосіб, за допомогою якого деякі пошукові системи, такі як Google, покращують позиціонування веб-сайту. Я просто кажу, оскільки матеріал був використаний як мінімум подяки, я б посилався на цю роботу.
Я думаю, що це чудово, що ви поділилися, але що ви втрачаєте, роблячи посилання? Тільки подумайте, якщо з іншого блогу з кращим позиціонуванням, ніж цей, вміст цього буде дубльований. desdelinux Не посилаючись на це, зрештою вони поховали б цей блог.
Хаттерас опублікував його 10 днів тому, і якщо він не дістав його з вашого зошита або ви не Луїс Пуенте, я не можу пояснити, що ви говорите, це те, що майже все є текстовим. Малоймовірно, але не неможливо.
Але нічого, що подібні речі трапляються. І я не знаю, для особистої етики та співпраці з іншим колегою я б посилався на нього. Це залежить від вас, я не думаю, що Хаттерас теж сприймає це неправильно, а навпаки.
Це правда, це справжня копія цього допису: http://hatteras.wordpress.com/2013/01/18/algunos-usos-practicos-del-comando-dd/
Хм ... я зробив dd if = file.iso = / media / жорсткий диск ... помилково 😛
будь-яким способом відновити файли з жорсткого диска ???
Ви можете використовувати Testdisk
Мой друг трапився зі мною, можливо, за допомогою testdisk або за допомогою спеціалізованого дистрибутива в реальному часі для порятунку даних. Моя рекомендація зробити резервну копію для наступного разу, оскільки використання цієї команди - щось делікатне в мої дні початківців, щоб відформатувати весь жорсткий диск, не бажаючи цього, а тепер добре перезавантажитися ... Що само собою зрозуміло, ні grub не розпочався.
Хтось може сказати мені, яку команду використовувати, щоб побачити хід копіювання за допомогою команди dd, я маю на увазі бачити індикатор прогресу з%, який копіював.
Слдс
Друже! додавши команду pv. У цьому ж дописі він говорить це майже на початку і пояснює, як ним користуватися. Прочитайте ще раз
використовуючи цю команду:
dd if = / dev / sdc | bzip2> /media/Elements/iso.gz
Мені вдалося зробити iso-образ 16-гігабайтного диска та зберегти його на 400-гігабайтний.
Але я не знаю, якою була б команда відновити це зображення на початковий диск об'ємом 16 Гб або на інший тієї ж ємності
питання
використовуйте цю команду для
для n у {1..5}; do dd if = / dev / urandom | pv | dd = = dev / hda bs = 8b conv = notrunc;
для диска на 2 ТБ
то я залишаюся в консолі щось подібне
>
Чи слід запускати іншу команду або скільки часу може тривати процес?
дякую і продовжуйте
У кінці рядка є помилка для…, яка відсутня «; готово »залишилось« на n у {1..5}; do dd if = / dev / urandom | pv | dd = = dev / hda bs = 8b conv = notrunc; готово »
дуже гарна стаття ... .. Я збираюся застосувати це на практиці ... привітання приятелю
Дуже корисно, це мені дуже допомогло, дякую
Хороший Альф. Дякую за інформацію.
Питання. Чи є спосіб скопіювати лише частину вихідного диска? Справа в тому, що якщо у мене є 120 Гб диск, на якому використовується лише 25 Гб, і я хочу зробити копію на 40 Гб диск, мені буде цікаво лише скопіювати використаний простір (25 Гб), чи є спосіб із цією командою?
Заздалегідь спасибі.
Для вас було б краще використовувати rsync, за допомогою команди rsync -av / path / to / origin / path / to / destiny ви вже б створили резервну копію всіх своїх дозволів з відповідними дозволами.
Я мав на увазі: "усі ваші файли з відповідними дозволами"
Шановний, хтось знає, чому, займаючи команду dd, вона сягає лише 4.2 Гб і вказує на те, що файл дуже великий? Це образ диска на 250 Гб і надходить на зовнішній диск розміром 1 Тб.
sudo dd if = / dev / sda | pv | dd of = / home / fox / backup.iso
Помилка 4Gb дає вам це, тому що ви намагаєтесь зробити резервну копію в розділі за допомогою fs FAT16
Який хороший блог. Дуже корисний запис. Я вже бачив використання цієї команди в інших місцях, але вони взагалі нічого не пояснювали. Дякую.
привіт, у мене є машина для ін'єкцій, в якій програму було втрачено, оскільки вони замінили стек bios, у нас немає резервної копії, але у нас є інша та сама машина, вона має лише дискету, послідовний і паралельний порт, як я можу зробити резервну копію цієї машини щоб завантажити його в інший, сподіваюся, ви можете мені допомогти, дякую
Я просто хочу скопіювати розділ, не починаючи з LIVE CD. Наприклад, у мене є диск з / dev / sda1, / dev / sda5, / dev / sda6, і я хочу зробити копію в / dev / sda5 з іншого диска / dev / sdb1
команда dd, якщо = / dev / sdb1 = = dev / sda5 bs = 1M ????
Привіт як ти. Я також живу в Гвадалахарі.
Ваша стаття про команду DD дуже цікава. Я хочу протестувати деякі дистрибутиви Linux, зокрема Archlinux, але я не зміг скористатися командою DD і скопіювати завантажений мною ISO Archilinux на флешку. Я не знаю, чи можете ви передати мені галочку, щоб почати з цього. Дякую, Педро Лобато
Оскільки, коли iso записується за допомогою команди "dd", він служить лише для завантаження на деяких ПК?
Досвід. У мене є 2 ноутбуки, і жоден з них не завантажує iso будь-якого дистрибутива Linux; але навпаки, він дійсно завантажується на старому настільному ПК з неактивним диском
Найкраще грати в безпеці, використовуючи unetbootin, з dd у мене також залишилося питання, чому іноді це не працює.
Я не думаю, що це залежить від DD, а від ISO. Те саме, що з Unetbootin, він погано працює з усіма дистрибутивами.
Іноді це працює на всіх ПК, але до процесу доводиться додавати mbr та syslinux до usb; але це довго і нудно.
Проста частина відновлення завантаження
Будьте обережні: це не iso або dd для мене, це спосіб, як ви це записуєте.
У мене є сумніви, якщо я використовую цю команду:
sudo dd, якщо = / dev / нуль = / dev / diskdrive
Замість цього форматування низького рівня є однаковим або займає більше часу:
sudo dd, якщо = / dev / нуль = / dev / diskdrive bs = 1M ..
Чи можна використовувати команду dd для видалення певного файлу?
наприклад
dd if = / dev / urandom of = / home / myfile delete
при bs = 1M це стає швидшим
І якщо я збираюся зробити точну копію з одного диска на інший з усіма його розділами (своп, sda ...) і обидва диски однакові, але один на ПК, а другий на NAS через мережу ????
спасибі
Коментар, я використовую його з status = progress в кінці, і мені не потрібен pv, тому debian дуже добре працює для мене, щоб побачити прогрес.
І друге, чи є спосіб отримати лише дані, а не цілий блок, оскільки якщо це диск на 2 ТБ і я використовую лише 100 Гб, мені потрібен весь цей простір. Чи є спосіб просто створити резервну копію цих 100 Гб? І коли я передаю його на інший носій, це може бути менший диск, може, 500?
Допоможіть !!!
Виконайте команду
dd if = cbpp-9.0-amd64-20170621.iso з = / dev / sdb
все добре ... але зараз я хочу використовувати usb як блок зберігання і ...
USB не підключений, він навіть не відображається в GParted.
Хтось знає, що я можу зробити.
PS: яка була б найкраща програма для відновлення інформації з дисків та CD DVD….
ви повинні повторно перевірити розділ за допомогою fdisk