自定义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

(3)
康歌康歌
上一篇 2018-03-26
下一篇 2018-03-26

相关推荐

  • KeepAlive高可用双主lvs-dr模型集群

    1.环境: RS1  :  192.168.0.117 RS2 :192.168.0.118 VS1 :192.168.0.106 VS2 :  192.168.0.114 VIP1:192.168.0.90     VIP2:192.168.0.99 2.在RS上安装httpd服务:yum install httpd 编辑网页: vi /var/www/h…

    Linux笔记 2018-07-23
  • shell打印选择菜单shell

    每天一练小脚本

    Linux笔记 2018-05-19
  • 新开始,新航程

           每一个夏天都是变动的季节,这个夏季我毕业了。大学最后的时光是在实验室度过的,每天都被瓶瓶罐罐所包围,鼻子里不时的飘进乙酸乙酯的香味,研究完了生物柴油的催化,是时候该为自己的未来找一条出路了。         大二的时候出于对计算机的着迷,一不小心点进了51cto,从此就走上了不归路。从计算机网络到linux,再到mysql,我在这个世界里乐此不…

    Linux笔记 2018-07-21
  • 进程管理工具及计划任务

    进程管理工具 kill命令: 向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG开头 (可省略),不区分大小写 显示当前系统可用信号: kill –l,trap -l 常用信号:man 7 signal 1) SIGHUP: 无须关闭进程而让其重读配置文件 2) SIGINT: 中止正在运行的进程;相当于Ctrl+c 3) SIGQ…

    Linux笔记 2018-05-06
  • Linux

    Linux 系统启动过程和Linux系统目录介绍

    Linux笔记 2018-04-05
  • 磁盘存储和文件系统

    磁盘存储和文件系统: 磁盘设备的文件命名:/dev/dev_file虚拟磁盘:/dev/vd磁盘标识: /dev/sda,/dev/sdb……磁盘分区:/dev/sda1,/dev/sdb2…… chs 磁盘sector 扇区 512bytestrack 磁道head 磁头cylinder柱面 使用磁盘: 分区创建文件系统:格式化挂载:分配目录名 hexdu…

    Linux笔记 2018-05-20