[SOLVED] simpelste form eines bootbaren raw image

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ren22

[SOLVED] simpelste form eines bootbaren raw image

Beitrag von ren22 » 24.07.2014 15:20:31

Hi

was ist eigentlich die simpelste form eines bootbaren raw images was man dann auch auf ein USB oder HDD mit dd kopieren kann ?

was ich bisher gemachte habe ist mit dd ein 64MB große datei anzulegen, dann mit fdisk eine boot partition erstellt auf dem image erstellt , dass image mit losetup "gemounted" dann mk2fs das loopdevice formatiert , dann wieder ungemounted und mit "dd if=mbr.bin of=image conv=notrunc" aber sagt mir immer "no operating system found" ! ich versuch das ganze mit syslinux/extlinux ... ist extlinux zwingend notwendig mittels "extlinux --install /dev/loop0/boot/extlinux" ??

und so sieht man ein script aus:

Code: Alles auswählen

# Name des Images
image=hdc.img

# Konfiguration der Grö�e
cylinder=128 #~64MB
heads=16
sectors=63


# ----------------------------------------------
# Skript

size=$((cylinder*heads*(sectors)*512))
sizemb=$((size / (1024*1024)))

echo "Erstelle Hard-Disk Image mit CHS=${cylinder}/${heads}/${sectors}, also ${sizemb} MBytes..."

#create raw image
dd if=/dev/zero of=${image} bs=512 count=$((size / 512)).

#create 1 bootable partition
/sbin/fdisk -C ${cylinder} -H ${heads} -S ${sectors} ${image}<<EOF
n
p
1


a
1

w
q
EOF

#losetup mount loop image
OFFSET=32256
LODEV=`losetup -f`
losetup $LODEV $image -o $OFFSET

#make filesystem mkfs.ext2 on loop image
mkfs.ext2 $LODEV

#mount loop image to directory
[ -d /tmp/test ] || [ mkdir -p /tmp/test ]
sudo mount $LODEV /tmp/test

#create directory and copy needed files
cp -rf /mnt/sda1/tce/boot /tmp/test/
ls -l /tmp/test

#umount image and losetup
sudo umount /tmp/test
losetup -d $LODEV

#install masterboot record
dd if=mbr.bin of=$image conv=notrunc
Danke ren22
Zuletzt geändert von ren22 am 30.07.2014 13:12:33, insgesamt 1-mal geändert.

ren22

Re: simpelste form eines bootbaren raw image

Beitrag von ren22 » 30.07.2014 13:12:18

den Teil des Codes den ich oben gepostet hatte funktioniert nur im zusammenhang wenn man Extlinux mit "extlinux --install /device" ausführt ...
dann klappt es auch mit dem Booten.

extlinux ist soweit nötig da es einen link vom "mbr" zum extlinux.conf setzt, laut dem syslinux IRC 'ops

ren22

Antworten