• 简单搭建内核调试环境--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 -------------------------
  • 相关阅读:
    Python 编码问题(十四)
    Python 编程核心知识体系-文件对象|错误处理(四)
    Python 编程核心知识体系-模块|面向对象编程(三)
    项目中的走查
    回滚代码及pod install报错
    UI-3
    UI-2
    UI-1
    MarkDown基本语法速记
    Swift3.0-closure的@autoclosure和@escaping
  • 原文地址:https://www.cnblogs.com/heling/p/14160635.html
Copyright © 2020-2023  润新知