自制Linux系統
1.首選準備一臺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.啟動
原創文章,作者:zhai796898,如若轉載,請注明出處:http://www.www58058.com/46776
從圖可以看出作者很用心,贊一個