Я хотел клонировать жесткий диск на 500 ГБ, поэтому я загрузился в Kali Linux и выполнил следующую команду:

dd if=/dev/sda of=/media/root/usb/windows.img bs=64k conv=noerror

Все это работало абсолютно нормально, изображение было сделано и может загружаться. Однако при загрузке этого фактического компьютера отображается следующее сообщение:

An operating system wasn't found. Try disconnecting any drives that don't contain an operating system. Press Ctrl+alt+Del to restart.

Возможно, что это просто совпадение, однако это кажется маловероятным. В настоящее время у меня нет физического доступа к этому компьютеру, вопрос в том, может ли выполнение этой команды dd привести к тому, что компьютер не сможет найти загрузочные диски?

1 ответ1

0

Маловероятно, что эта команда dd сама по себе оказала какое-либо негативное влияние на загрузку, поскольку все, что она делала, - это считывание данных с диска /dev /sda и запись их в файл образа, который физически находится на другом устройстве хранения.

Маловероятно, не значит невозможное. Проверьте, можете ли вы исключить следующие два случая.

Исключение 1: я заметил, что вы передали опцию conv=noerror . Обычно эта опция используется для извлечения данных из неисправного устройства хранения (на самом деле вы бы использовали conv=sync,noerror и значение для bs, которое соответствует размеру физического сектора вашего жесткого диска ). То, что он делает, заставляет dd продолжать работу после того, как он обнаружил поврежденные сектора на диске, с которого он читает, так что вы можете извлечь данные из файла образа, который все еще может содержать повреждение данных, вызванное неисправным диском, но теперь он находится в безопасном хранилище. , Если посмотреть на это с другой стороны, если вы подозреваете, что ваш диск исправен , вы не хотите передавать conv=noerror , чтобы при сбое dd вы знали, что есть проблема с диском.

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

Исключение 2: Кроме того, хотя приведенный выше вызов dd верен, при вводе команд dd вручную очень легко поменять 'if' на 'of', что может легко сделать данные на жестком диске непригодными для использования.

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

Сообщение, которое вы читаете (An operating system wasn't found [...]), получено из загрузчика Windows. Таким образом, биос нашел диск с этим загрузчиком, который в свою очередь не может найти установку Windows, чтобы пойти с ним. Вы ожидали загрузки в Windows?

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

Вы изменили какие-либо параметры загрузки BIOS, например, при загрузке в Kali? Вы уверены, что биос указывает на правильный диск сейчас? (Или, может быть, диск, который раньше использовался для установки Windows?)

Если ваше описание завершено, вы фактически не «клонировали» жесткий диск, вы просто создали файл образа внутри существующей файловой системы (что было бы полезно в качестве резервной копии). Правильно клонированный жесткий диск может быть вставлен в компьютер для замены оригинального, но это не сработает с тем, что вы делали до сих пор. Кроме того, если исходный жесткий диск был неисправен, изображение, вероятно, повреждено. Возможно, вы захотите прочитать больше о клонировании с dd в этом базовом примере и в этом обсуждении о conv = sync, noerror.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .