Я хотел клонировать жесткий диск объемом 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
Маловероятно, чтоэтотКоманда dd сама по себе не оказала никакого негативного влияния на загрузку, поскольку она всего лишь считывала данные с диска /dev/sda и записывала их в файл образа, который физически находится на другом устройстве хранения данных.
Маловероятно не значит невозможно. Проверьте, можете ли вы исключить следующие два случая.
Исключение 1: Я заметил, что вы передали опцию conv=noerror
. Обычно эта опция используется для извлечения данных из неисправного устройства хранения (фактически вы бы использовали conv=sync,noerror
и значение для bs, которое соответствует физическому размеру сектора вашего жесткого диска). Что она делает, так это заставляет dd продолжить работу после того, как он обнаружил плохие сектора на диске, с которого он считывает данные, поэтому вы можете надеяться извлечь данные из файла образа, который все еще может содержать повреждение данных, вызванное неисправным диском, но теперь находится на безопасном хранилище. Если посмотреть на это с другой стороны, если вы подозреваете, что ваш диск исправен, вы делаетенетхочу передать conv=noerror
, чтобы в случае сбоя dd вы знали, что проблема с диском.
Если предположить, что вы читали с плохого диска, то само чтение dd могло привести к появлению еще большего количества плохих секторов на диске, как и любая другая операция чтения любой другой программой (например, обычная загрузка ПК). Если это правда, то dd вполне мог быть последним успешным чтением этого сектора.
Исключение 2: Кроме того, хотя приведенный выше вызов dd является правильным, при вводе команд dd вручную очень легко заменить «if» на «of», что может легко сделать данные на жестком диске непригодными для использования.
Даже если вы сейчас не уверены, что dd не испортил ваши данные, не пренебрегайте поиском других причин неудачной загрузки. Вот несколько советов, которые могут помочь вам на этом пути и, возможно, позволят вам точнее описать проблему:
Сообщение, которое вы читаете ( An operating system wasn't found [...]
), исходит от загрузчика Windows. Итак, BIOS обнаружил диск с этим загрузчиком, который в свою очередь не может найти установку Windows, которая бы его сопровождала. Вы ожидали загрузить Windows?
Вы пытались запустить исходный жесткий диск из вашего описания, жесткий диск с новым образом диска или вообще другую установку?
Вы меняли какие-либо параметры загрузки BIOS, например, при загрузке Kali? Вы уверены, что BIOS теперь указывает на правильный диск? (Или, может быть, диск, который раньше использовался для установки Windows?)
Если ваше описание полное, вы на самом деле не «клонировали» жесткий диск, вы просто создали файл образа внутри существующей файловой системы (который был бы полезен в качестве резервной копии). Правильно клонированный жесткий диск можно вставить в ПК, чтобы заменить оригинальный, но это пока не сработает с тем, что вы сделали до сих пор. Кроме того, если исходный жесткий диск был неисправен, образ, скорее всего, поврежден. Вы, вероятно, хотите прочитать больше о клонировании с помощью ddв этом простом примереив этом обсуждении conv=sync,noerror.