首页 CentOS CentOS 6.6 系统剪裁

CentOS 6.6 系统剪裁

一:前言 本文主要通过裁剪现有Linux系统,打造一个属于自己的Linux小系统,让其能够装载网卡驱动,并配置IP地址,实现网络功能。 二:原理: linux系统的启动流程: 1、首先Linux要通过POST自检,检查硬件设备有没有故障 2、如果有多块启动盘的话,需要在BIO

一:前言

本文主要通过裁剪现有Linux系统,打造一个属于自己的Linux小系统,让其能够装载网卡驱动,并配置IP地址,实现网络功能。

二:原理:

linux系统的启动流程:

1、首先Linux要通过POST自检,检查硬件设备有没有故障

2、如果有多块启动盘的话,需要在BIOS中选择启动磁盘

3、启动MBR中的bootloader引导程序

4、加载内核文件

5、执行所有进程的父进程init

6、打印欢迎界面

在Linux的启动流程中,加载内核文件时还需要借助别外两个文件:

1)initrd,是CentOS5上用内存模拟的磁盘设备

2)initramfs,是CentOS6上用内存模拟的文件系统

在启程的流程中,init主要是用来做哪些操作的呢?

init通过调用/etc/inittab这个配置文件,然后再去执行/etc/rc.d/rc.sysinit的系统初始化脚本

三:操作步骤:

1:目标磁盘分区:

在系统中添加一个硬盘,并命名为test,进行分区/dev/sdb1为100M来做引导程序,/dev/sdb2为1G用来装根文件系统,把这两个分区用mke2fs 进行格式化,然后进行如下操作,把/dev/sdb1挂载到/mnt/boot下,把/dev/dsb2挂载到/mnt/sysroot下:

CentOS 6.6 系统剪裁

  • ①grub-install会安装grub引导第二阶段的文件

  • ②setup不会安装第二阶段的引导程序,是安装引导信息到MBR

  • 第二个需要注意的地方就是–root-directory=后面接的路径应该是boot目录所在的地方,而不是/mnt/boot,因为boot目录在mnt下;目标磁盘是/dev/sdb

    1. [root@localhost ~]# grub-install –root-directory=/mnt /dev/sdb

    [root@localhost ~]# ls /mnt/boot/

    grub lost+found

    [root@localhost ~]# ls /mnt/boot/grub/

    device.map iso9660_stage1_5 stage1 xfs_stage1_5

    e2fs_stage1_5 jfs_stage1_5 stage2

    fat_stage1_5 minix_stage1_5 ufs2_stage1_5

    ffs_stage1_5 reiserfs_stage1_5 vstafs_stage1_5

    [root@localhost ~]#

    安装好了grub会发现grub.conf这个文件不在,后面再补

    3、 将内核文件和initrd文件复制到/dev/sdb下的boot目录中

    [root@localhost ~]# cp /boot/vmlinuz-2.6.32-504.el6.x86_64 /mnt/boot/vmlinux

    [root@localhost ~]# cp /boot/initramfs-2.6.32-504.el6.x86_64.img /mnt/boot/initramfs.img

    [root@localhost ~]#

    4、创建目标主机根文件系统

    [root@localhost ~]# mkdir -p /mnt/sysroot/{bin,lib,media,proc,selinux,tmp,boot,etc/rc.d,lib64,misc,net,root,srv,usr,dev,home,mnt,opt,sbin,sys,var}

    [root@localhost ~]# bash a1.sh

    请输入一个命令:bash

    [root@localhost ~]# bash a1.sh

    请输入一个命令:ls

    [root@localhost ~]# bash a1.sh

    请输入一个命令:cat

    [root@localhost ~]# bash a1.sh

    请输入一个命令:ifconfig

    [root@localhost ~]# bash a1.sh

    [root@localhost ~]# ls /mnt/sysroot/

    bin dev home lib64 media mnt opt root selinux sys usr

    boot etc lib lost+found misc net proc sbin srv tmp var

    [root@localhost ~]# cd /mnt/sysroot/bin/

    [root@localhost bin]# ln -sv bash sh

    “sh” -> “bash”

    [root@localhost bin]# ls -l

    总用量 1116

    -rwxr-xr-x. 1 root root 904872 8月 27 01:57 bash

    -rwxr-xr-x. 1 root root 45224 8月 27 01:57 cat

    -rwxr-xr-x. 1 root root 109208 8月 27 01:57 ls

    -rwxr-xr-x. 1 root root 77336 8月 27 01:58 mount

    lrwxrwxrwx. 1 root root 4 8月 27 01:59 sh -> bash

    附:命令移植脚本

    #! /bin/bash

    #

    j=”/mnt/sysroot”

    read -p “请输入一个命令:” i

    if which $i &> /dev/null;then

    a=`which $i`

    else

    echo ” 命令有错”

    fi

    b=`dirname $a`

    [ -d ${j}${b} ] || mkdir -p ${j}${b}

    [ -f ${j}${a} ] || cp $a ${j}${b}

    for c in `ldd $a | grep -o “/[^[:space:]]\{1,\}”`;do

    z=`dirname $c`

    [ -d ${j}${z} ] || mkdir -p ${j}${z}

    [ -f ${j}${c} ] || cp $c ${j}${z}

    done

    5、为grub提供配置文件grub.conf

    [root@localhost ~]# vi /mnt/boot/grub/grub.conf

    default=0

    timeout=5

    title CentOS

    root (hd0,0)

    kernen /vmlinux ro root=/dev/sda2 selinux=0 init=/bin/bash

    initrd /initramfs.img

    ~

    [root@localhost ~]# sync (同步)

    6、启动测试

    特别提醒:

    CentOS 6.6 系统剪裁CentOS 6.6 系统剪裁CentOS 6.6 系统剪裁 本文来自网络,不代表云浮站长网立场。转载请注明出处: https://www.0766zz.com/html/zhonghe/fwq/centos/20200906/10267.html

    上一篇
    下一篇

    作者: dawei

    【声明】:云浮站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

    为您推荐

    返回顶部