自定义linux系统

假如生活欺骗了你,不要悲伤不要心急,相信吧,快乐的日子终将来临!–海子

自制linux mini系统
借助linux系统创建mini版系统文件
制作步骤
a.载体,u盘或者硬盘
 vm创建虚拟硬盘后,免重启硬盘识别命令:
这里创建的盘大小为20G 
# echo “- – -” > /sys/class/scsi_host/host2/scan  
lsblk
没有显示的话,只好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.conf
1. default=0
  #等待时间
2. timeout=3
3. 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 ;do
read -p “please input order(eg:[ls|quit]):” ord
root=”/mnt/sysroot”
copycmd (){
seat=`which $ord`
dir=`dirname $seat`
        if [ $? -eq 0 ];then
                echo “$seat”
                [ ! -d “$root$dir” ] && mkdir -pv “$root$dir”
                cp -f “$seat” “$root$seat”
        else
        echo “Input error” ; continue
        fi
}
copylib (){
        ldd $(which $ord) |grep -oE “/.* ” |while read line ;do
               local libdir=$root$(dirname $line)
               if [ -e “$root$line” ];then
                       continue
               elif  [ -d “$libdir” ];then
                      cp -v “$line” “$libdir”
               else
                      mkdir -pv “$libdir”
                      cp -v “$line” “$libdir”
               fi
               done
}
case $ord in
q|quit)
       echo  “Copy finished” ;exit 1
;;
*)
         copycmd;copylib
esac
done
j.关机,复制虚拟硬盘文件到指定文件夹,创建一个虚拟机,并装载这个虚拟硬盘,启动。。。
                                                                                                                                     ——      end

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/93213

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班