私人定制—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 07:44
下一篇 2016-09-26 07:44

相关推荐

  • 8月8日作业

    4、如何设置tab缩进为4个字符?    编辑用户工作目录下.vimrc文件,使vim基础设置对个人用户生效,或者编辑/etc/vimrc文件,使配置对系统全部    用户生效。    set tabstop=4 5、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/…

    Linux干货 2016-08-12
  • bash脚本函数和数组

        函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部分。    函数和shell程序比较相似,区别在于:  &nbsp…

    Linux干货 2016-08-24
  • linux上RAID的工作方式

    -. RAID是什么?     磁盘阵列(Redundant Arrays of Independent Disks,RAID),是将多块廉价硬盘组合在一起当作一个更大的硬盘使用,利用可以同时对每个硬盘同时进行读写的特性提高计算机对硬盘的读写能力。我们甚至可以空出RAID中的一块或多块硬盘对整个RAID进行数据校验,提…

    Linux干货 2015-12-06
  • Linux Basics–part3

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d” ” -f1 | sort -u centos ronny root 或 ~]# who | cut -d” ” -f1 | sort |uniq centos ronny root 2…

    Linux干货 2017-08-07
  • 建立yum源及yum命令的使用

    一、什么是YUM     YUM的全称为 Yellowdog Update Modifier,其主要目的是为了解决RPM包安装时的依赖关系的问题。YUM只是一个用于软件安装的前端工具,其主要的服务对象还是RPM软件包。     YUM采用C/S架构,即客户端与服务器的模…

    Linux干货 2015-05-11
  • 第八周

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch…

    Linux干货 2016-09-19

评论列表(1条)

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

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