HOST:宿主机
Target:目标机
1.基于HOST制作一个简单的可启动的Linux
1.给目标磁盘分区
两个:
在宿主机上:/dev/sdb1,/dev/sdb2
/dev/sdb1挂载到 /mnt/boot
/dev/sdb2挂载到 /mnt/sysroot
2.安装grub至目标磁盘
#grub-install --root-directory=/mnt /dev/sdb
3.复制内核和initrd文件
#cp /boot/vmlinuz-VERSION /mnt/boot/vmlinuz
#cp /boot/initramfs-VERSION.img /mnt/boot/initramfs-VERSION.img
4.创建目标主机的根文件系统
#mkdir -pv /mnt/sysroot{etc/rc.d,usr,var,proc,sys,dev,lib,lib64,bin.sbin,boor,srv,mnt,media,home,root}
#移植bash等至目标机的根文件系统
5.为grub提供配置文件
# /mnt/boot/grub/grub.conf
default=0
timeout=5
title My new tiny Linux
root(hd0,0)
kernel /vmlinuz ro root=/dev/sda2 quiet selinux=0 init=/bin/bash
initrd /initramfs.img
6.编辑init
#cd /mnt/sysroot
#vim sbin/init
#!/bin/bash
#
echo -e "\tWelcome to \033[34m My new tiny \033[0m Linux"
mount -n -t proc /proc
mount -n -t sysfs sysfs /sys
insmod /lib/modules/e1000.ko
[ $0 -eq 0 ] && echo -e "Load e1000 moduel succeeded [\033[32m ok \033[0m]"
ifconig lo 127.0.0.1/8
ifconfig eth0 192.168.19.128/16
mount -n -o remount,rw /dev/sda2 /
/bin/bash
#chmod +x sbin/init
#vim /mnt/boot/grub/grub.conf
default=0
timeout=5
title My new tiny Linux
root(hd0,0)
kernel /vmlinuz ro root=/dev/sda2 selinux=0 init=/sbin/init
initrd=/initramfs.img
#sync
最后,目标机使用新的硬盘启动