自定义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 20:58
下一篇 2018-03-26 20:59

相关推荐

  • 正则表达式详细用法

    grep命令: 文本过滤(按行过滤) 参数                 -v 取反                 -i 忽略大小写                 -n 显示行号                 -c 统计匹配行数                 -q 静默执行(不显示执行结果)                 -o 仅显示搜索到的字符…

    Linux笔记 2018-04-08
  • 文件查找和压缩

    本节讲解文件查找locate和find命令;还有各种压缩工具

    2018-04-12
  • 1

    1

    Linux笔记 2018-07-07
  • sed作业

    编程基础 程序:指令+数据程序编程风格:过程式:以指令为中心,数据服务于指令对象式:以数据为中心,指令服务于数据shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令编程语言:低级:汇编高级:编译:高级语言–>编译器–>目标代码 java,C#解释:高级语言–>解释器&#8211…

    2018-04-15
  • 日志管理

    日志介绍 日志配置 日志管理 远程日志 基于MYSQL的日志

    Linux笔记 2018-06-25
  • 加密与安全

    加密与安全 SSH端口转发 SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP…

    Linux笔记 2018-06-11