實驗環境
1、centos7圖形化界面安裝 2、busybox:busybox-1.30.0.tar.bz2 官網 https://busybox.net 下載地址:https://busybox.net/downloads/busybox-1.30.0.tar.bz2 3、一塊新添加的硬盤
Busybox 是一個開源項目,遵循GPL v2協議。Busybox將衆多的UNIX命令集合進一個
很小的可執行程序中,其中包括了三百多個最常用Linux命令和工具
一、編譯安裝busybox
[root@centos7 data]# yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel \
openssl openssl-desystemd-devel zlib-devel glibc-static ncurses-devel wget
[root@centos7 data]# tar xf busybox-1.30.0.tar.bz2
[root@centos7 data]# cd busybox-1.30.0
[root@centos7 busybox-1.30.0]make menuconfig
[root@centos7 busybox-1.30.0] make && make install
##按下面選擇,把busybox編譯爲靜態二進制、不用共享庫
Busybox Settings -->Build Options -->[*] Build BusyBox as a static binary (no shared
libs) 之後保存退出 --> exit --> exit --> yes
安裝成功
busybox的使用有三種方式:
busybox後直接跟命令,如 busybox ls
直接將busybox重命名,如 cp busybox tar
創建符號鏈接,如 ln -s busybox rm
以上方法中,第三種方法最方便,但爲busybox中每個命令都創建一個軟鏈接,
相當費事,busybox提供自動方法:busybox編譯成功後,執行make install,則會
產生一個_install目錄,其中包含了busybox及每個命令的軟鏈接
二、添加新硬盤並分區
新添加的硬盤要保存爲單個文件,並記錄具體保存路徑
添加後掃描到磁盤並分區格式化,至少分2個分區,/dev/sdb1爲boot分區,/dev/sdb2爲根分區 這裏不寫詳細步驟了
三、安裝bootloader和grub、內核文件
[root@centos7 busybox-1.30.0]# grub2-install --root-directory=/mnt /dev/sdb 安裝grub1階段和1.5階段
[root@centos7 busybox-1.30.0]# hexdump -C -n 512 /dev/sdb 查看bootloader
[root@centos7 busybox-1.30.0]# grub2-mkconfig > /mnt/boot/grub2/grub.cfg grub階段
[root@centos7 busybox-1.30.0]# cp /boot/vmlinuz-3.10.0-957.el7.x86_64 /mnt/boot/
[root@centos7 busybox-1.30.0]# cp /boot/initramfs-3.10.0-957.el7.x86_64.img /mnt/boot/
[root@centos7 busybox-1.30.0]# cp _install/* /mnt/sysroot/ 將busybox下_install文件複製到/mnt/sysroot
[root@centos7 ~]#vi /etc/default/grub
修改/etc/default/grub在最後一行添加
GRUB_DISABLE_LINUX_UUID=true
[root@centos7 ~]#grub2-mkconfig > /mnt/boot/grub2/grub.cfg
刪除之前添加在/etc/default/grub的那一行以免影響現有系統
到此自制系統已經完成下面開始驗證
新建一個空白虛擬機,將原有的磁盤刪除,不然bios會默認從第一塊硬盤尋找系統
添加新硬盤
成功開機,裏面的命令來自於busybox