Як створити трохи однакове зображення USB-палички?


21

У мене є USB-накопичувач, який чомусь не читається. Я хочу сформувати його для цілей зберігання, щоб потім спробувати отримати дані із зображення.

Як би я міг створити таке трохи однакове зображення USB-палички?


Це помилка, яку я отримую під час використання dd:

oshirowanen@desktop:~$ sudo dd if=/dev/sdd of=/USB_image
[sudo] password for oshirowanen: 
dd: reading `/dev/sdd': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.00783 s, 0.0 kB/s
oshirowanen@desktop:~$ 

Який шестигранний редактор ви використовуєте?
AJMansfield

Якщо ви не можете прочитати з пристрою, що /dev/sdxвказує на USB-накопичувач, виникає серйозна проблема, і я думаю, що нормальним користувачам немає інструментів, які б спрацювали. Більше інформації див. За цим посиланням, askubuntu.com/questions/144852/… ; Не здавайся відразу. Спробуйте відповідно до списку речей, які можуть спричинити читання. Можливо, ви можете витягнути USB-накопичувач і знайти мікро SD-карту, яка все ще працює відповідно до коментаря @ ubfan1 (у відповіді, що пов'язана).
sudodus

у вас є 2 варіанти вирішення вашої проблеми: Перший простий: запустіть sudo su, а потім як root запустіть команду dd 2-а більш кваліфікована версія запустіть dd зі статусом і '' sudo bash -c 'dd status = прогрес, якщо = / dev / sd * | gzip> ~ / Backup-USB.img.gz '
WiKrIe

Відповіді:


39

dd це!

Використання буде чимось на зразок sudo dd if=/dev/sdb of=~/USB_imageде / dev / sdb - ваш USB-накопичувач, як перераховано, sudo fdisk -lа ~ / USB_image - файл зображення, куди буде зроблена копія (шлях, де буде створений файл зображення).

Щоб відновити зображення на іншому USB-диску, просто інвертуйте процес: sudo dd if=~/USB_image of=/dev/sdbвідновіть ~ / USB_image до пристрою sdb . Просто переконайтеся, що новий накопичувач USB такий же великий чи більший, ніж оригінальний.

Ви також можете змонтувати щойно створений файл зображення на шляху без необхідності відновити його спочатку на іншому USB-накопичувачі mount ~/USB_image /mnt/USB_image -o loop.


Що робити, якщо fdisk -lне видно USB-накопичувач? Однак я бачу це в програмі Disk Utility як / dev / sdd, але коли я намагаюся використовувати вашу команду, вона, здається, не виходить.
oshirowanen

Невдача з якою виною?
Бруно Перейра

До оригінального запитання було додано помилку, оскільки це було занадто багато для коментаря.
oshirowanen

1
Якщо fdisk не відображає пристрій, використовуйте dmesg для перегляду того, що відбувається під час підключення пристрою. Dmesg - це список взаємодій ядра, тому в основному, якщо апаратне забезпечення робить щось на вашому комп'ютері, повідомлення про це є в dmesg.
j0h

2
@Alex використовуйте status='progress'з dd Ubuntu або з'ясуйте PID вашої ddкоманди і надішліть їй SIGUSR1сигнал. Не впевнений у інших реалізаціях.
Сергій Колодяжний

7

Використовуйте ddrescue. Він продовжиться після помилок, де ddпросто вийде з ладу.

Крім того, ddrescueзнаходиться в репості. 13.04 я набрав sudo apt-get install gddrescue для встановлення.

Використовуйте sudo fdisk -lабо dmesgдля визначення місця розташування пристрою, наприклад:, /dev/sdbа потім запустіть таку команду, як

ddrescue /dev/sdb /home/user/desktop/bkp.img

Є багато варіантів ddrescue, і ви можете прочитати manсторінки. Також я не впевнений, чому ваше обладнання виходить з ладу і демпінгує dd. Один поганий блок може змусити ddвийти, але це може призвести до переривчастого відключення живлення. dmesgможе розповісти вам більше про технічні збої, які можуть виникнути.

ЗАБЕЗПЕЧЕНО, що пристрій не встановлений! коли ви намагаєтеся відновити дані, зображення тощо. Це може спричинити проблеми.

Є багато речей, які можуть піти не так у відновленні даних. Повідомте назад, якщо у вас є проблеми. testdiskце приємна утиліта для відновлення даних, коли у вас є зображення.

Це для наочності, це жорсткий диск usb або usb (твердотільна пам'ять)?

Помилки вводу / виводу, як правило, вказують на несправності обладнання, а не на пошкодження файлової системи.

Спробуйте також отримати аналіз даних SMART пристрою, якщо він доступний. Це може вам сказати про такі речі, як якщо пристрій, який перегрівався, тривалий час працював, має погані сектори, що піддаються більш ніж X ні. Gs тощо.


USB палицю, немає ніяких даних SMART для аналізу ... Я також думаю , що вам потрібно використовувати sudoдля ddrescue* , де дд просто не буде * є свого роду не зовсім вірно , так як ви можете налаштувати , ddщоб ігнорувати помилки читання. testdiskдивовижно, коли ви можете читати втрачені сектори даних, а не тоді, коли накопичувач загинув.
Бруно Перейра

# є символом для root, тому ні, sudo не потрібно. якби $, то так.
j0h

Я також хочу зазначити, що якщо ddrescue або навіть dd не вдається, але ви здатні генерувати зображення, ви все одно можете спробувати зробити відновлення даних на цьому зображенні.
j0h

Я б запропонував використовувати gddrescueпроти, ddrescueоскільки gddrescueє новішим і більш здатним виконати цю роботу ddrescue.
Бруно Перейра

1
Я навіть не знаю людини, читаю свій пост. gddrescue - пакет, а ddrescue - команда.
j0h

2

Ви можете створити зображення USB-накопичувача (або іншого пристрою) за допомогою dd.

Напр

dd if=<usb device> of=usb.img

Ви можете додати більше параметрів ddдля оптимізації команди (наприклад bs).


2

dd, як згадував попередній плакат, це рідний шлях. Ви хочете, щоб воно продовжувалося над помилками, тож розпочніть це з:

dd if=<usb device> of=<new file on disk with enough space> bs=<should match your blocksize> conv=noerror,sync 

Важлива частина є останньою: conv=syncвказує dd вкласти всі ті блоки, які він міг прочитати лише частково з нулями, тому отримане зображення може мати кілька нулів занадто багато, але структурно дорівнює лускатому диску за вирахуванням помилок читання. conv=noerror подбав про ці помилки читання, повідомивши dd продовжити наступний блок. На даний момент значення розміру блоку має значення, оскільки, якщо він більший, ніж потрібно, щоб пропустити помилку, тут читаються дані, що читаються. Blocksize завжди повинен бути фактором два - якщо ви сумніваєтесь, 512kслід робити трюк.

Тоді я б запропонував:

  • зберігайте немодифіковану копію цього зображення десь у безпеці
  • fsck копія образу диска
  • змонтуйте зображення диска
  • перевірте свої файли - вони зараз без проблем читабельні, але деякі можуть бути відсутніми або усіченими
  • Якщо сам пристрій неможливо прочитати, можливо, вам не пощастить. Крім того, якщо на пристрої міститься деяке власне програмне забезпечення, воно може бути налаштоване для повернення помилок читання при зверненні до них у перших блоках.

(Частково цитую себе із статті, написаної ще в 2010 році)

Якщо вам не потрібно залишатися рідним, ви завжди можете спробувати інструменти, які намагаються дещо полегшити процес, такі як ddrescue (пакет gddrescue) та його супутник ddrescueview( sourceforge ) для візуалізації помилок.


2

Що стосується другої половини вашого питання "Це помилка, яку я отримую при використанні дд": я бачу пару можливостей.

  1. Зверніть увагу на різницю команди, яку ви ввели, порівняно з прийнятою відповіддю; ти пропускаєш ~перед /USB_image. Іншими словами, ви намагаєтеся вивести корінь вашої файлової системи замість домашнього каталогу.
  2. /dev/sddможе бути неправильним приводом. Запустіть sudo fdisk -lі порівняйте розмір накопичувача з відомим розміром USB-накопичувача. Наприклад, я знаю , що це мій USB палицю , тому що це близько до 16GB: Disk /dev/sdf: 15.8 GB, 15805186048 bytes.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.