自制Linux精简系统

本系统是基于CentOS6.8

步骤如下:

自制Linux系统

(1)分区并创建文件系统

fdisk /dev/sdb

    分两个必要的分区

    /dev/sdb1 对应 /boot  /dev/sdb2 对应根 /

    创建文件系统

mkfs.ext4 /dev/sdb1   
mkfs.ext4 /dev/sdb2

(2)挂载boot分区

mkdir /mnt/boot

mount /dev/sdb1 /mnt/boot

(3)安装grub

grub-install  --root-directory=/mnt  /dev/sdb

(4)恢复内核和initramfs文件

cp /boot/vmlinuz-2.6.32-642.el6.x86_64    /mnt/boot/

cp /boot/initramfs-2.6.32-642.el6.x86_64.img    /mnt/boot

(5)建立grub.conf

vim /mnt/boot/grub/grub.conf

        default=0

        timeout=5

        title=nineven linux

        root (hd0,0)

        kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2 selinux=0 init=/bin/bash

        initrd /initramfs-2.6.32-642.el6.x86_64.img

(6)挂载跟系统

mkdir /mnt/sysroot
mount /dev/sdb2 /mnt/sysroot
mkdir -pv /mnt/sysroot/{etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc,opt,home,root,boot,dev,mnt,media}

    复制bash和相关的库文件

    复制相关命令及相关库文件,比如: ls ,cat ,vim ,reboot ,fdisk ,mount ,hostname 等待

(7)验证bash是否可用

chroot /mnt/sysroot

(8)同步数据到磁盘上

    sync 命令,多执行几次

操作流程如下:

我用的是虚拟机模拟的

(1) 先添加一块硬盘,然后通过

echo "- - -" >> /sys/class/scsi_host/host2/scan

扫描出新增的硬盘

(2)分区

(3)格式化文件系统

(4)boot 分区操作

(5)根分区操作

复制bash和相关的库文件,我用的是提前写的脚本,脚本请往后看

验证成功,最后检查一下 /mnt/sysroot/etc/fstab 和 /mnt/boot/grub/grub.conf 文件,最后确认一下配置是否正确

然后新建一个虚拟机,用这块磁盘作为系统盘,检查一下是否可用开机

开机界面

由于是精简系统,好的功能都用不了

复制库文件及命令的脚本

[root@localhost Desktop]# vim /boot/cmd.sh
#!/bin/bash
flag=1
read -p "please input a path that you want to copy : " mubiaodir
panduanlujing(){
    path=$(dirname $mubiaodir$ki)
    if [ ! -e $path ];then
        mkdir -p $path
    fi
   cp  $ki $mubiaodir$ki &> /dev/null || flag=0
}
kuwenjian(){
    for ki in $(ldd $(which --skip-alias $cmdname) | sed -rn "s@.*[[:space:]]([/].*)[[:space:]].*@\1@p") $(which --skip-alias $cmdname);do
        panduanlujing
    done
}
while true ;do
read -p "please input a command name , quit is exit:" cmdname
if [ "$cmdname" == "quit" -o "$cmdname" == "exit" ];then
    break
else
    if (ldd $(which --skip-alias $cmdname)) &> /dev/null ;then
        kuwenjian
        [  $flag -eq 1 ] && echo "复制成功" || echo "权限不足,复制失败"
    else
        echo "错误的命令名称"
    fi
fi
done

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值