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