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

相关推荐

  • Linux运维20180401计算机基础总结

    计算机基础及linux基础和帮助

    Linux笔记 2018-04-01
  • Linux基础知识

    一:用户登录 root用户:管理员账户,也被称为超级用户,root拥有对Linux系统的所有权限,甚至可以把自己杀死(rm -rf /*),除非必须,一般不用root用户登录系统 普通用户:权限受到限制,只可以对自己有权限的文件进行操作 二:终端(terminal) 1.设备终端 键盘鼠标显示器 2.物理终端( /dev/console ) 控制台conso…

    2018-03-29
  • 一些常用的文本工具

    cat命令:查看文本内容 cat [选项]… [文件]… -E    显示行结束符 -n    显示文本内容时显示行号 -A    显示所以控制符 -b    非空行编号 -s     压缩连续的空行成一行 head命令 : -n  显示文件前n行,默认显示前10行 -c # 显示文件前#个字节内容 tail命令: tail [选项]…

    2018-04-09
  • keepalived之ipvs-dr

    keepalived初试

    2018-07-15
  • 第十周博客作业

    1、Centos系统下实现httpd-2.2的安装,并分别实现prefork、worker、event等几种工作方式
    2、简述request报文请求方法和状态响应码
    3、详细描述httpd虚拟主机、站点访问控制、基于用户的访问控制、持久链接等应用配置实例

    2018-05-26