OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2923|回复: 1

bochs调试linux2.4.0内核,制作硬盘镜像文件,开机报错

[复制链接]

12

主题

72

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2015-9-9
在线时间
59 小时
发表于 2022-9-15 15:41:49 | 显示全部楼层 |阅读模式
20金钱
我在用bochs进行调试,
内核是linux2.4.0【在redhat 7.3上可以编译生成bzImage】

一、
dd命令制作了一个硬盘镜像,
dd if=/dev/zero of=hd.img bs=516096c count=100


二、
前边63扇区安装grub,后边的硬盘空间全部只划分一个分区,
fdisk -u -C100 -S63 -H16 hd.img
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x0d508796.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c').

Command (m for help): c                                            <=================
DOS Compatibility flag is not set

Command (m for help): n                                           <=================
Command action
   e   extended
   p   primary partition (1-4)
p                                                                           <=================
Partition number (1-4): 1                                          <=================
First sector (1-100799, default 1): 63                        <=================
Last sector, +sectors or +size{K,M,G} (63-100799, default 100799):        <=================回车
Using default value 100799

Command (m for help): w                                        <=================
The partition table has been altered!

Syncing disks.



三、
losetup -o 32256 /dev/loop0 hd.img
跳过63x512=32256个字节再挂载

四、
格式化分区
mkfs.ext2 /dev/loop0

五、
将主机用的grub文件拷贝到硬盘镜像中【主机用的是centos6.4】【编译内核用的是redhat7.3】
mount -t ext2 /dev/loop0 /mnt/
mkdir  -p /mnt/boot/grub
cp /boot/grub/stage1 /mnt/boot/grub/
cp /boot/grub/stage2 /mnt/boot/grub/
cp /boot/grub/e2fs_stage1_5 /mnt/boot/grub/
cp /boot/grub/grub.conf /mnt/boot/grub/
ln -s /mnt/boot/grub/grub.conf /mnt/boot/grub/menu.lst

六、
卸载设备
umount /mnt/
losetup -d /dev/loop0
安装grub
grub --device-map=/dev/null
device (hd0) hd.img
geometry (hd0) 100 16 63
root (hd0,0)
setup (hd0)
quit


七、
拷贝内核、busybox制作的文件系统
losetup -o 32256 /dev/loop0 hd.img
mount -t ext2 /dev/loop0 /mnt/
cp bzImage /mnt/boot/vmlinuz
拷贝完文件系统之后,/mnt目录如下
[root@bogon work]# ls /mnt/
bin  boot  dev  etc  linuxrc  lost+found  mnt  proc  root  sbin  sys  tmp  usr  var

注:busybox是我在Redhat7.3上边编译的busybox-0.60.3.tar.bz2




八、
修改/mnt/boot/grub/grub.conf文件:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Linux-2.4.0
        root (hd0,0)
        kernel /boot/vmlinuz rw root=/dev/hda1 init=/linuxrc



卸载
umount /mnt/
losetup -d /dev/loop0



bochs启动后,报错:
Snipaste_2022-09-15_15-41-29.png







我想问一下,
将内核、文件系统放到同一个分区里面,这样的做法是对的吗?
之前想弄ramdisk、initrd啥的,一直弄不成,所以就想让内核直接来挂载我这个唯一的分区得了,结果还是不行。
了解的兄弟帮我解答一下啊,谢谢了。






参考链接:
https://www.linuxidc.com/Linux/2016-11/137354.htm
https://www.linuxidc.com/Linux/2016-11/137353.htm
https://www.linuxidc.com/Linux/2016-11/137343.htm
https://www.linuxidc.com/Linux/2016-11/137342.htm


毕业两年才学STM32...
这些都没关系,重点是自己到底成长了没有
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
315
金钱
315
注册时间
2012-11-1
在线时间
70 小时
发表于 2022-9-15 15:58:02 | 显示全部楼层
正确的方式是将板子9.9包邮
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-1-19 07:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表