私人定制—linux系统

自制Linux系统:

1、分区并创建文件系统

[root@localhost6 ~]# fdisk  /dev/sdb

分两个必要的分区

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

创建文件系统:

[root@localhost6 ~]# mkfs.ext4 /dev/sdb1
[root@localhost6 ~]# mkfs.ext4 /dev/sdb2

2、创建挂载点,并挂载boot

[root@localhost6 ~]# mkdir/mnt/boot
[root@localhost6 ~]# mount /dev/sdb1 /mnt/boot

3、安装grub,生成grub文件

[root@localhost6 ~]# grub-install --root-directory=/mnt/ /dev/sdb

wKioL1fbXY3QWc0nAAAT2PlX1Bo997.png

4、建立grub.conf:

[root@localhost6 ~]# vim /mnt/boot/grub/grub.conf
default=0
timeout=3
title mylinux
    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

5、恢复内核和initramfs文件

[root@localhost6 ~]# cp /boot/vmlinuz-2.6.32-642.el6.x86_64  /mnt/boot/
[root@localhost6 ~]# cp /boot/initramfs-2.6.32-642.el6.x86_64.img /mnt/boot/

wKiom1fbX9Tj49aVAAAlhI0v-PM339.png

6、创建一级目录

[root@localhost6 ~]# mkdir /mnt/sysroot/
[root@localhost6 ~]# mount /dev/sdb2 /mnt/sysroot/
[root@localhost6 ~]# mkdir –pv /mnt/sysroot/{etc,lib,lib64,bin,sbin,tmp,var,usr,sys,
proc,opt,home,root,boot,dev,mnt,media}

wKioL1fbYPqCl9v3AAAR3lGTkto147.png

7、编辑fstab文件

[root@localhost6 ~]# vim /mnt/sysroot/etc/fstab
/dev/sda1 /boot ext4 defaults 1 1
/dev/sda2  /    ext4 defaults 1 2

8、复制bash,相关命令和相关库文件

由于文件较多,一个一个复制较为麻烦,所以建议使用脚本,来实现复制任务。

[root@localhost6 ~]# vim copycmd.sh
#!/bin/bash

ch_root="/mnt/sysroot"
[ ! -d $ch_root ] && mkdir $ch_root
 
bincopy() {
    if which $1 &>/dev/null; then
        local cmd_path=`which --skip-alias $1`
        local bin_dir=`dirname $cmd_path`
        [ -d ${ch_root}${bin_dir} ] || mkdir -p ${ch_root}${bin_dir}
        [ -f ${ch_root}${cmd_path} ] || cp $cmd_path ${ch_root}${bin_dir}
        return 0
    else
        echo "Command not found."
        return 1
    fi  
}
 
libcopy() {
    local lib_list=$(ldd `which --skip-alias $1` | grep -Eo '/[^[:space:]]+')
    for loop in $lib_list;do
        local lib_dir=`dirname $loop`
        [ -d ${ch_root}${lib_dir} ] || mkdir -p  ${ch_root}${lib_dir}
        [ -f ${ch_root}${loop} ] || cp $loop ${ch_root}${lib_dir}
    done
}


read -p "Please input a command: " command

while [ "$command" != "quit" ];do
    if bincopy $command ;then
        libcopy $command
    fi
    read -p "Please input a command or quit: " command
done

wKiom1fbadmgy1XbAAAXEVfWgCo546.png

9,现在一个晓得linux已经制作完成,它只有很简单的功能,但是,以后有需要可以再添加其他的功能。下面我们来开机看一下。

wKiom1fbfHeAKz5bAAtzUSuSnGw946.gif

这样,一个简单的小linux已经制作完成,可以将它放在U盘等便携式设备上,可以随时使用,修改等。。。

原创文章,作者:Groot,如若转载,请注明出处:http://www.178linux.com/48696

(0)
GrootGroot
上一篇 2016-09-26
下一篇 2016-09-26

相关推荐

  • 任务计划1

    at.allow :优先级高,有此文件,deny无效,只有此文件中的用户可使用at at.deny:优先级低,此文件中的用户拒绝,不在此文件允许 如果都没有,全都拒绝普通用户     [root@localhost ~]# rpm -q  at at-3.1.13-22.el7.x86_64 [root@localhost ~]…

    Linux干货 2017-05-15
  • linux中的vim

    什么是vim:     Linux 在命令行下的文本编辑器,很多个别软件的编辑接口都会主动调用vim,所以在 Linux 的系统中使用文字编辑器来编辑你的Linux参数配置文件,在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设置.所有的Unix L…

    Linux干货 2016-08-11
  • The first work’s homework

    一、描述计算机的组成及其功能     计算机是由硬件系统(hardware system)和软件系统(software system)两部分组成的。     1.硬件系统:       根据冯诺依曼计算机体系结构模型,中…

    Linux干货 2016-12-05
  • CentOS系统启动流程、selinux、Systemd剖析

    交互式登录配置文件读取顺序: /etc/profile –> /etc/profile.d/*.sh –> ~/.bash_profile –> ~/.bashrc –> /etc/bashrc 非交互式登录配置文件读取顺序: ~/.bashrc –> /etc/bas…

    Linux干货 2018-03-04
  • 马哥教育网络班第21期+第二周课程作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 命令 选项 解释 cp -r 递归复制 copy -f 强行复制,若已存在则覆盖 -i 交互式 -p 保留属主属组权限时间戳 -L(不加也可以,默认) (源文件为链接)复制指向连接的文件 -P (源文件为链接) 以链接的方式复制过来 -a 归档复制,常用备份 命令 选项 …

    Linux干货 2016-07-17
  • 文件查找与压缩

    文件查找与压缩   Locate:非事实查找(数据库查找)     查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 依赖于事先构建的索引; 索引的构建是在系统较为空闲时自动进行(周期性任务); 管理 员手动更新数据库(updatedb);   工作特点: 查找…

    Linux干货 2016-08-18

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-26 11:56

    写的不错,操作性性很强,整个流程很顺畅。