2014-09-12 2 views
0

У меня есть pendrive, где я восстанавливаю изображение, заданное командой dd в другой системе. Когда я восстанавливаю изображение, всегда должен делать fsck. Возможно ли, что, когда я сгенерировал изображение, исходная система была повреждена или это то, что я повреждаю pendrive при восстановлении файла изображения? Большое спасибо и извините за мой английский!проблемы с восстановлением файла образа с помощью dd

ответ

0

Это просто догадка, так как вы не предоставляете много информации о создании изображения, но да, возможно, что файловая система находилась в нечистом состоянии, когда изображение было снято. Также возможно, что файловая система просто все еще смонтирована в этот момент времени - всегда отключайте файловую систему (или монтируйте ее только для чтения), прежде чем принимать ее изображение.

+0

Является ли образ моей малины пи. FS был установлен. Итак, есть способ проверить ошибки до того, как я поместил изображение в мой pendrive? Спасибо – user650034

+0

Да, вы можете привязать изображение к устройству loopback (используя 'losetup', IIRC), затем' fsck' loopback device, отвязать изображение с устройства loopback и только затем записать изображение на USB-устройство. –

+0

Возможно, вы имели в виду: losetup/dev/loop0/my dd_image. Затем fsck/dev/loop. А затем команда dd? – user650034

1

Чтобы узнать, есть ли у вас коррупция в ваших данных, при создании изображения вы должны вычислить checksum (md5sum или sha1).

# dd if=/dev/sdb of=my_image.img # --> here you create your image 
# md5sum /dev/sdb     # --> here you compute your checksum 
e2985322ca0ed3632027a6eb8fe70ae8 /dev/sdb 
# md5sum my_image.img    # --> check the integrity of the image 
e2985322ca0ed3632027a6eb8fe70ae8 my_image.img 

Таким образом, при прошивке на другое устройство, на другом компьютере или любой системе, вы можете проверить целостность данных.

# dd if=my_image.img of=/dev/hdc # --> here you flash your image to a device 
# md5sum /dev/hdc     # --> check the integrity of the flashed data 
e2985322ca0ed3632027a6eb8fe70ae8 /dev/hdc 

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

Очевидно, что если вы копируете с dd к устройству (даже), убедитесь, что один не установлен, используя что-то вроде mount | grep /dev/hdc не должен возвращать ничего, если вы хотите прошить dev/hdc устройства.

+0

Спасибо. Очень полезная информация. Проблема в том, что я не могу сгенерировать изображение сейчас, поэтому я не могу сделать md5sum – user650034

Смежные вопросы