自制linux系统
1.首选准备一台Linux虚拟机并添加一块新硬盘
![自制Linux系统]()
2.分区并创建文件系统,创建两个必要的分区根分区和boot分区 fdisk /dev/sdb 分区
mke2fs -t ext4 /dev/sdb1 创建boot文件系统
mke2fs -t ext4 /dev/sdb2 创建根分区
![自制Linux系统]()
![自制Linux系统]()
3.挂载boot分区
![自制Linux系统]()
4.在boot分区上安装grub
![自制Linux系统]()
![自制Linux系统]()
5.恢复内核和initramfs文件
![自制Linux系统]()
6.在grub目录下手动定义grub.conf配置文件
![自制Linux系统]()
7.创建根目录下的一级目录
![自制Linux系统]()
![自制Linux系统]()
8.复制bash程序相关库文件以及其他命令程序(ls,pwd,cat,df,free…),脚本如下 [root@CentOS6 ~]# cat 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
[root@CentOS6 ~]# 9.定义/mnt/sysroot/etc/fstab文件
![自制Linux系统]()
至此,我们的Linux系统就已经制作完成了,接下来创建一个虚拟机测试是否能启动 1.新建一个虚拟机,将磁盘指向我们自建的Linux系统磁盘
![自制Linux系统]()
![自制Linux系统]()
2.启动
![自制Linux系统]()
![自制Linux系统]()

2.分区并创建文件系统,创建两个必要的分区根分区和boot分区 fdisk /dev/sdb 分区
mke2fs -t ext4 /dev/sdb1 创建boot文件系统
mke2fs -t ext4 /dev/sdb2 创建根分区


3.挂载boot分区

4.在boot分区上安装grub


5.恢复内核和initramfs文件

6.在grub目录下手动定义grub.conf配置文件

7.创建根目录下的一级目录


8.复制bash程序相关库文件以及其他命令程序(ls,pwd,cat,df,free…),脚本如下 [root@CentOS6 ~]# cat 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
[root@CentOS6 ~]# 9.定义/mnt/sysroot/etc/fstab文件

至此,我们的Linux系统就已经制作完成了,接下来创建一个虚拟机测试是否能启动 1.新建一个虚拟机,将磁盘指向我们自建的Linux系统磁盘


2.启动

