dd
Восстановление загрузчика Windows после установки Linux
1.Загружаемся в Linux
Считываем первые 512 байт диска командой
$ dd if=/dev/hda of=~/bootsect.bin bs=512 count=12.Нужно передать этот файл в Windows, через USB-Диск или через запись на примонтированые разделы
3.Загружаемся c Установочного диска Windows в режиме консоли - нужно при загрузки с диска нажать кнопку R
Выбираем нужную копию Windows
Выполняем команду fixmbr для восстановления главной загрузочной записи.
4.Перезагружаемся - загружается Windows
Копируем с флешки файл bootsect.bin в корень диска С:\
Включаем отображение невидемых файлов
В файл boot.ini дописываем строчку
C:\bootsect.bin="Linux"
Перезагружаемся, и проверяем. Теперь загрузчик позволяет нам выбирать Linux и Windows.
Советы в тему:
- добавляем Linux в NT boot loader
- Установка Linux из под Windows с жесткого диска без дискет и DVD- CD-ROM'a
смотрим за работой dd
часто бывает нужно сделать копию/дамп с помощью команды dd какого нить большого объекта, выполняем dd if=/input of=/output bs=1M ... и работает оно себе. когда работает долго - хочется узнать сколько осталось. сколько осталось - не ясно, а статистику I/O можно получить.
нужно подать сигнал -USR1 (-10) этому процессу, и он выкинет эту информацию в stderr
$ dd if=/dev/zero of=/dev/null bs=1M & $ killall -10 dd 566067+0 records in 566066+0 records out 593563222016 bytes (594 GB) copied, 16.1759 s, 36.7 GB/s
Цифровые аргументы для dd в шеснадцатиричном виде
Как ни странно утилита dd не поддерживает цифровые аргументы в шеснадцатиричном виде, хотя часто бывает нужно указать смещение или размер блока в более удобном для этого шеснадцатиричном виде. Более того в зависимости от аргумента, если передать число в шеснадцатиричном виде, в С нотации, то dd может или закончится ошибкой или проинтерпретировать как 0. Например:
$ dd bs=0x1 dd: неверный номер `0x1' $ dd count=0x1 0+0 записей считано 0+0 записей написано скопировано 0 байт (0 B), 1,248e-05 секунд, 0,0 kB/s
добавляем Linux в NT boot loader
1. В консоли Linux из под root выполняем:
$ dd if=/dev/hd?? of=~/bootsect.lnx bs=512 count=1Обратите внимание, вместо /dev/hd?? должен быть указан раздел диска, на котором стоит Linux. Это может быть /dev/hda1, /dev/hda2, и т.д. Имейте в виду, данное только действительно для IDE дисков. Диски SATA или SCSI будут начинаться с /dev/sd??.
Так или иначе, этой командой мы "выдрали" 512 байт из загрузочного сектора раздела (т.е. /dev/hd??) , на котором стоит Linux и положили в файл с названием bootsect.lnx


