自制linux系统
CentOS6.10自制LINUX系统(vmware环境)
1、准备一块干净的新磁盘(vmware)

2、扫描磁盘scandisk
echo - - - > /sys/class/scsi_host/host0/scanecho - - - > /sys/class/scsi_host/host1/scanecho - - - > /sys/class/scsi_host/host2/scanlsblk查看磁盘是否添加成功: 
3、创建磁盘分区
使用fdisk /dev/sdb创建2个分区,一个当/(20G),一个当/boot(1G),分区后的结果如下: 
4、格式化文件系统mkfs.ext4
mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2使用blkid命令查看文件系统类型是否正确,如下图: 
5、创建新磁盘的boot挂载点
mkdir /mnt/boot
6、mount /dev/sdb1 /mnt/boot/
sdb1:换到其它系统时,就变成sda1,即/
7、安装grub
grub-install --root-directory=/mnt/ /dev/sdb--root-directory=/mnt/ :指定系统的根,必须是boot文件夹的上一级目录ls /mnt/boot/grub/ 查看是否生成grub的1、1.5和2阶段的文件,如下图: 
8、同步grub信息到磁盘
sync 为确保可靠同步,可以多软几次sync
9、拷贝原磁盘中的vmlinuz和initramfs到/mnt/boot/
cp /boot/vmlinuz-2.6.32-754.el6.x86_64 /boot/initramfs-2.6.32-754.el6.x86_64.img /mnt/boot/ ,如下图: 
10、把vmlinuz和initramfs修改成简单的名称,方便后面使用
cd /mnt/boot/mv vmlinuz-2.6.32-754.el6.x86_64 vmlinuzmv initramfs-2.6.32-754.el6.x86_64.img initramfs.img
11、手动编辑grub.conf文件(必要的内容)
vim /mnt/boot/grub/grub.confdefault=0timeout=5title customlinuxkernel /vmlinuz root=/dev/sda2 selinux=0 init=/bin/bashinitrd /initramfs.img#init=/bin/bash:指定系统启动的第一个进程
12、创建新磁盘的/挂载点
mkdir /mnt/root
13、mount /dev/sdb2 /mnt/root/
14、创建/根目录下的文件夹
for DIR in `ls /`;do mkdir /mnt/root/$DIR ;done 结果如下: 
15、使用copycmd.sh脚本拷贝需要的命令到/mnt/root下
测试拷贝的命令:ifconfig,insmod,ping,mount,ls,cat,df,lsblk,blkid,bash,vi,echo,umountcat copycmd.sh:read -p "Pls input copycmd directory: " copydir[ -d $copydir ] || mkdir -p $copydirwhile truedoread -p "Pls input a copycmd or quit: " nameif [ "$name" == "quit" ];thenexitelse#cp $name ${copydir}${newdir}newname=`which $name|sed -rn 's#.*/([^/].*)#\1#p'`newdir=`which $name|sed -rn 's#(^/.*/).*$#\1#p'`if [ ! -f ${copydir}`which $name` ];thenmkdir -p ${copydir}${newdir} &> /dev/null\cp `which $name` ${copydir}${newdir}fildd `which --skip-alias $name` | while read linedotestname=`echo $line | sed -rn 's/(.*) =>.*$/\1/p'`if [ "$testname" == "linux-vdso.so.1" ];thencontinueelsecmd=`echo $line | sed -rn 's#.*/(.*) .*$#\1#p'`cmddir=`echo $line | sed -rn 's#.*(/.*/).*$#\1#p'`\cp -aL ${cmddir}${cmd} ${copydir}$cmddir &> /dev/nullfidonefidone#注意:copycmd的目标地址一定要填/mnt/root(新磁盘的/目录)复制命令的结果如下: 
16、复制网卡驱动e1000.ko
1) locate e1000 查找驱动的源地址2) cp `locate e1000.ko` /mnt/root/lib/3) ls /mnt/root/lib/结果如下: 
17、 磁盘同步
syncsync
18、切根后测试一个复制的命令是否正确
chroot /mnt/root #注意:如果没有出现提示符“bash-4.1#”,则上面的步骤有错误,如下图: 
19、测试一下新磁盘系统是否可用
1) 关机本虚拟机2) 先复制linux新系统硬盘(即第1步中的centos6.10基础-2.vmdk)到一个地方3) 新建一个虚拟机(CentOS6.10)4) 复制linux新系统硬盘(centos6.10基础-2.vmdk)到新建的虚拟机中5) 添加一个网卡,方便测试虚拟机网络(注意要用同一个vmnet)6) 启动新虚拟机7) 测试一个使用copycmd.sh脚本拷贝的命令(注意:ifconfig -a 看不到网卡信息,因为没有驱动)8) insmod安装网卡驱动(insmod /lib/e1000.ko)9) 添加临时IP地址(ifconfig eth0 192.168.36.16/24)10) 查看IP地址信息(ifconfig -a)11) ping -c 2 192.168.36.110(同一vmnet中正在运行的虚拟机IP)12) 查看/boot下面的内容(因为缺少/etc/fstab,所以什么也看不到,可以先挂载)13) mount /dev/sda1 /boot14) 如果想开机启动能看到/boot下面的内容,就需要写/etc/fstab文件。
添加硬盘向导

正常启动的界面

测试一下命令

添加网卡驱动及ping测试

转载于:https://blog.51cto.com/13560168/2378122
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
