java数学表达式计算(expression evaluator),制作linux小系统--linux启动详解

1、添加宿主机一个5G大小的硬盘,注意在添加新硬盘的时候必须选择“Store virtual disk as a single file”,否则,也会出现内核恐慌kennel panic。

2、创建两个分区,一个大小为200M的分区用于挂载到/mnt/boot目录下,一个大小为4G的分区挂载到/mnt/sysroot下用作系统的根分区。

fdisk /dev/sdb

partprobe /dev/sdb #重读分区表

3、格式化分区

mke2fs -j /dev/sdb1   #200M

mke2fs -j /dev/sdb2   #4G

4、挂载分区

mount /dev/sdb1 /mnt/boot

mount /dev/sdb2 /mnt/ssyroot

5、安装grub到/mnt/boot下,请使用grub-install方式安装,这种安装会安装两段grub程序。

grub-install --root-directory=/mnt /dev/sdb

#这个缺少grub.conf文件,待会回来补充

6、将内核和initrd复制到/mnt/boot目录下

cp /boot/vmlinuz-2.6.18-194.el5 /mnt/boot/vmlinuz

cp /boot/initrd-2.6.18-194.el5.img /mnt/boot/initrd

7、创建根分区所需要的目录文件

mkdir -pv /mnt/sysroot/{etc/rc.d,usr,var,proc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root}

8、移植命令和库文件到目标根文件系统中

1)移植bash命令

cp /bin/bash /mnt/sysroot/bash

cd !$

ln -sv bash sh

2) 移植init命令

cp /sbin/init /mnt/sysroot/init

3)移植bash命令的库文件

ldd /bin/bash  #查看bash命令所需要的库文件

linux-gate.so.1 =>  (0x009db000)   #这个是开头的库文件,不需要cp,其他的都cp到/mnt/sysroot/lib目录下

libtermcap.so.2 => /lib/libtermcap.so.2 (0x0092d000)

libdl.so.2 => /lib/libdl.so.2 (0x008fe000)

libc.so.6 => /lib/libc.so.6 (0x007b6000)

/lib/ld-linux.so.2 (0x00798000)

4)移植init命令的库文件

ldd /sbin/init

linux-gate.so.1 =>  (0x0092c000)

libsepol.so.1 => /lib/libsepol.so.1 (0x00967000)

libselinux.so.1 => /lib/libselinux.so.1 (0x009af000)

libc.so.6 => /lib/libc.so.6 (0x007b6000)

libdl.so.2 => /lib/libdl.so.2 (0x008fe000)

/lib/ld-linux.so.2 (0x00798000)

9、为init提供配置文件和初始化脚本

1)cd /mnt/sysroot/etc/

vim inittab

id:3:initdefault:

si::sysinit:/etc/rc.d/rc.sysinit

2)提供rc.sysinit脚本

#!/bin/bash

#

echo -e "\t Welcome to my linux"

/bin/bash

为上面两个脚本赋予x权限

chmod +x inittab

chmod +x rc.sysinit

10、为grub提供配置文件grub.conf

vim grub.conf

default=0

timeout=5

title fish soft-linux

root (hd0,0)  #标识内核所在分区

kernel /vmlinuz-soft ro root=/dev/sda2

initrd /initrd-soft.img

~

11、目标机也就是添加硬盘然后移动测试

使用之前在宿主机上添加的那块硬盘

12补充点:编辑initrd

gzip -9 1.xpm

cp 1.xpm.gz /mnt/boot/grub

vim grub.conf

splashp_w_picpath=(hd0,0)/1.xmp.gz

cd /tmp/myboot

zcat /boot/initrd-2.6.18-194.el5.img |cpio -id  #展开initrd

vim init

mkrootdev -t ext3 -o defaults,ro /dev/sda2

find . | cpio -o -H newc --quiet | gzip -9 > /mnt/boot/initrd-soft.img #cpio -o表示归档,重新压缩成gz格式的initrd

注:这里只是形成一个简单的,粗糙的linux

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值