简单搭建内核调试环境--7 从ISO安装到硬盘

 跳转到目录 点这里 

]试一下从光盘 grub-install 装到硬盘,

 (试了一下VMware 中新建虚拟机 用光盘iso启动 ,然后  grub-install /dev/sda 安装虚拟硬盘 是没有问题的,可以启动)

grub-install /dev/sdf --force --target=i386-pc --boot-directory=/mount_for_sda0/boot --directory=/kernel-debug/grub-2.04~rc1/_install/lib/grub/i386-pc --modules biosdisk --modules part_msdos --modules fat --modules exfat --modules ntfs --modules ext2 --modules iso9660 --modules udf --modules configfile --modules search --modules help --modules reiserfs --modules font --modules linux --modules chain --modules echo
 试了一下 grub-install /gdb/gdb.img 可以启动到 grub命令行的,但是因为Qemu 读不到img的分区表,还是记录一下过程
----------挂载光盘 跳过引导扇区------------
fdisk -ul manjaro-kde-20.1.2-201019-linux58.iso
p
设备                                   启动    起点    末尾    扇区  大小 Id 类型
manjaro-kde-20.1.2-201019-linux58.iso1 *         64 6013887 6013824  2.9G  0 空
manjaro-kde-20.1.2-201019-linux58.iso2      6013888 6022079    8192    4M ef EFI (FAT-12/16/32)
(64-1)*512=32256
mount -o loop,offset=32256 manjaro-kde-20.1.2-201019-linux58.iso /mnt#32256 预留给MBR
---------------------------------

------创建硬盘------------
rm /gdb/gdb.img 
dd if=/dev/zero of=/gdb/gdb.img bs=1k count=51200
----------------------------
------格式化硬盘------------
mkdir /gdb/disk 
fdisk -ul /gdb/gdb.img 
n
w
p
设备          启动  起点   末尾   扇区 大小 Id 类型
/gdb/gdb.img1       2048 102399 100352  49M 83 Linux
(2048-1)*512=1048064
方式一
losetup  -o 1048064 /dev/loop8848 /gdb/gdb.img
mkfs -t ext2 /dev/loop8848
mount -o loop,offset=1048064 /gdb/gdb.img /gdb/disk
mkdir -p /gdb/disk/boot/grub
cp -a /kernel-debug/grub-2.04~rc1/_install/lib/grub/i386-pc /gdb/disk/boot/grub/
cp -af /gdb/grub.cfg /gdb/disk/boot/grub/ 
ls -l /dev/disk/by-uuid/|grep 8848|awk '{print $9}'|xargs -i sed    's/diskuuid/'{}'/g' /gdb/disk/boot/grub/grub.cfg
ls -l /dev/disk/by-uuid/|grep 8848|awk '{print $9}'|xargs -i sed -i 's/diskuuid/'{}'/g' /gdb/disk/boot/grub/grub.cfg
ls -l /dev/disk/by-uuid/|grep 8848|awk '{print $9}'|xargs -i sed    's/diskuuid/'{}'/g' /gdb/bootconfig.init.cfg
ls -l /dev/disk/by-uuid/|grep 8848|awk '{print $9}'|xargs -i sed    's/diskuuid/'{}'/g' /gdb/bootconfig.init.cfg > /gdb/bootconfig.cfg
umount /gdb/disk
losetup -d /dev/loop8848
方式二
kpartx
-av /gdb/gdb.img ls -l /dev/mapper/ ls -l /dev/mapper/loop0p1 mkfs.ext4 /dev/mapper/loop0p1 mount /dev/mapper/loop0p1 /gdb/disk umount /gdb/disk losetup -d /dev/loop0 ----------------------------- ----------安装MBR 到img文件------------ # --force-file-id grub-install /gdb/gdb.img --force --target=i386-pc --boot-directory=/gdb/disk/boot --directory=/kernel-debug/grub-2.04~rc1/_install/lib/grub/i386-pc --modules biosdisk --modules part_msdos --modules fat --modules exfat --modules ntfs --modules ext2 --modules iso9660 --modules udf --modules configfile --modules search --modules help --modules reiserfs --modules font --modules linux --modules chain --modules echo -------------------------
原文地址:https://www.cnblogs.com/heling/p/14160635.html