Как мне скопировать загрузочную запись линуха на дискету?

Автор: Tors Дата: 26.04.2004 21:45 Как мне скопировать загрузочную запись линуха на дискету?
Слыхал есть dd, но я не разобрался с ним.
Приведите пожалуйста пример пример
Re: Как мне скопировать загрузочную запись линуха на дискету? 26.04.2004 23:39Heptode Немного хакерский способ но работает:
[root@localhost /]# cat /dev/hda > /dev/fd0
cat: ошибка записи: No space left on device
[root@localhost /]#
После этой процедуры, MBR и несколько последующих секторов, будут на дискете...
Еси потребуется, можно сделать обратную процедуру # cat /dev/fd0 > /dev/hda, тем самым востановить MBR. Но! Хочу ПРЕДУПРЕДИТЬ, что вырезаеться объем 1474560 который превышает размер MBR и может повредить заголовок /hda1 еси он другой, либо менялся!!!!!!
Re: Как мне скопировать загрузочную запись линуха на дискету? 27.04.2004 01:19Rokforus Гораздо проще воспользоваться командой dd.

Пока что основная ОСь (в силу работы) - Windows, но на диске есть (разумеется) и Линукс. Загрузчик ставил не в MBR (дабы не трогать Windows-загрузку), а на раздел (в частности, на /dev/hda7). Этот вариант подойдет и для случая, когда загрузчик находится в MBR. Следует упомянуть факт того, что надо будет создавать загрузочную дискету для того, чтобы потом загрузить Линукс и проделать все нужные операции (хотя вполне можно воспользоваться каким-либо Live-CD дистрибутивом - я лично пользую Knoppix 3.3 для подобных целей).

Вот пример копирования загрузчика с диска на дискету

#mount /mnt/floppy
#dd if=/dev/hda of=/mnt/floppy/aspboot.lin bs=512 count=1
#umount /mnt/floppy

Потом, в Windows'e, копируем созданный файл на загрузочный диск, и в файле boot.ini добавляем строчку вида C:\aspboot.lin="ASPLinux 9 (Ural)" и можно спокойно

В случае обратного копирования (с дискеты на диск) получится следующее:

#mount /mnt/floppy
#dd if=/mnt/floppy/bootasp.lin of=/dev/hda bs=446 count=1
#umount /mnt/floppy


Хочу обратить внимание во втором варианте на цифру 446 вместо 512 - для того, чтобы не затереть инфромацию о разделах диска (которая располагается в конце самого первого сектора диска)


P.S.
использованные параметры команды dd:

if=/dev/hda -- input file (входной файл, в данном случае самое начала всего диска)
of=/mnt/floppy/file.ext -- output file (выходной файл, в данном случае файл на дискете)
bs=512 -- block size (размер блока/буфера, 512 байт)
count=1 -- count Улыбка (количество раз проведения операции копирования буфером)

трактование и перевод параметров может не совпадать с общепризнанным, но, как говориться, мне так легче их понимать. Улыбка
Re: Как мне скопировать загрузочную запись линуха на дискету? 27.04.2004 23:48Ustas а не проще ли воспользоваться mkbootdisk ? Улыбка с его помощью всегда загрузиться и восстановить загрузчик. По крайней мере, если дискета с загрузочной записью нужна именно для этого, то мудрить с dd, imho, незачем.
Re: Как мне скопировать загрузочную запись линуха на дискету? 28.04.2004 08:43Neonovice >#dd if=/mnt/floppy/bootasp.lin of=/dev/hda bs=446 count=1

>Хочу обратить внимание во втором варианте на цифру 446 >вместо 512 - для того, чтобы не затереть инфромацию о >разделах диска (которая располагается в конце самого >первого сектора диска)

В общем случае это в корне неверно, т.к. записать менее одного сектора (512 байт) никогда и никуда нельзя, при этом результат такой операции просто непредсказуем (в смысле содержимого последних записанных байт). Чаще же всего, когда пишутся файлы (а не сектора), на винчестер запись производится кластерами, т.е. большими блоками по многу секторов.
Но в частных случаях может просто повезет.
Re: Как мне скопировать загрузочную запись линуха на дискету? 28.04.2004 09:51Kotjara Правильно так
#dd if=/dev/hdx of=/dev/fd0 bs=512 count=1
Т.е. в этом случае ты пишешь как бы не на флоппи, а в устройство
P.S. флоппарь монтировать не надо
RSS-материал