自制linux mini系统
借助linux系统创建mini版系统文件
制作步骤:
a.载体,u盘或者硬盘
vm创建虚拟硬盘后,免重启硬盘识别命令:
这里创建的盘大小为20G
# echo “- – -” > /sys/class/scsi_host/host2/scanlsblk没有显示的话,只好reboot重启 ლ(⌒▽⌒ლ)。
b. 为mini硬盘创建分区 ;这里暂分两个;引导区200m,另一个区用掉剩余1800M ,建分区可用parted 或 fdisk命令
#这里假若mini盘识别为sdb
fdisk /dev/sdb ;创建分区 n ;主分区p,扩展分区e;分区编号(1-4);节点起始;分区大小 +….M
注:记得 w 保存!!!
c.创建分区文件系统,一般centos6用ext4格式,7用xfs格式。
命令mkfs.ext4 /dev/sdb1或 mkfs.xfs /dev/sdb1两个分区都一并把文件系统创建好。blkid命令,查看UUID号是否生成。
d.部署mini盘的引导分区,并挂载分区
# mkdir -pv /mnt/{boot,rootfs}# mount /dev/sdb1 /mnt/boot/# mount /dev/sdb2 /mnt/rootfs/# df 查看一下
e.生成内核引导文件–grub
# grub-install –root-directory=/mnt/ /dev/sdb
f.为mini 系统boot目录创建内核与镜像文件
拷贝当前系统的/boot里内核与内核镜像,到mini系统的/boot目录cp /boot/vmliuz-###.el#.x86_64 /boot/initramfs-###.el#.x86_64.img /mnt/boot/
g.编写引导配置文件 grub.conf
vim /mnt/boot/grub/grub.conf1. default=0#等待时间2. timeout=33. title nice job linux# 内核指定; root指定 ;第一启动程序指定4. kernel /vmlinuz root=/dev/sda2 init=/bin/bash selinux=0# 内核镜像指定5. initrd /initramfs.img
h.创建根下子目录
cd /mnt/rootfs
mkdir -pv {proc,dev,lib,bin,sbin,home,root,etc/rc.d,usr/{lib,bin,sbin},var/{log,run,lock},tmp,mnt,sys}
i.定制需要用到的程序
由于上述指定了/bin/bash 为第一启动程序,所以bash程序必须拷贝过来。
cp /bin/bash /mnt/bin/bash
网卡如需使用也拷贝一下:
cp /lib/modules/`内核`/kernel/drivers/net/ethernet/ethernet.ko /mnt/rootfs/lib/
这里再制作一个起到“选择并复制”作用的这么一个脚本。方便其他程序包的复制。
代码如下:
#蛇棒while true ;doread -p “please input order(eg:[ls|quit]):” ordroot=”/mnt/sysroot”copycmd (){seat=`which $ord`dir=`dirname $seat`if [ $? -eq 0 ];thenecho “$seat”[ ! -d “$root$dir” ] && mkdir -pv “$root$dir”cp -f “$seat” “$root$seat”elseecho “Input error” ; continuefi}copylib (){ldd $(which $ord) |grep -oE “/.* ” |while read line ;dolocal libdir=$root$(dirname $line)if [ -e “$root$line” ];thencontinueelif [ -d “$libdir” ];thencp -v “$line” “$libdir”elsemkdir -pv “$libdir”cp -v “$line” “$libdir”fidone}case $ord inq|quit)echo “Copy finished” ;exit 1;;*)copycmd;copylibesacdone
j.关机,复制虚拟硬盘文件到指定文件夹,创建一个虚拟机,并装载这个虚拟硬盘,启动。。。
—— end
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/93213