這篇文章給大家介紹如何制作比較簡(jiǎn)單的Linux系統(tǒng),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
成都創(chuàng)新互聯(lián)成立于2013年,先為安徽等服務(wù)建站,安徽等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為安徽企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
1. 新建一個(gè)虛擬機(jī)(名稱:linux,類型:Linux,版本:Ubuntu(64bit))
除了虛擬硬盤大小設(shè)置2G,其它選項(xiàng)默認(rèn).
2. 在一個(gè)已經(jīng)安裝好ubuntu的虛擬機(jī)添加上述的虛擬硬盤.
先在安裝好的ubuntu上選擇設(shè)置->儲(chǔ)存->控制器:SATA->添加虛擬硬盤.
找到步驟1建立的虛擬硬盤.
3.啟動(dòng)已安裝好的ubuntu.給虛擬硬盤分區(qū).
如圖/dev/sdb就是步驟1的虛擬硬盤.
分區(qū)命令:sudo fdisk /dev/sdb
只分了一個(gè)主分區(qū):
4.給虛擬硬盤安裝grub引導(dǎo).
a.把/dev/sdb1格式化ext4文件系統(tǒng).如圖:
b.掛載/dev/sdb1到/mnt.
命令:sudo mount -t ext4 /dev/sdb1 /mnt/
c.安裝grub.
5.添加grub.cfg
最簡(jiǎn)單的方法是拷貝ubuntu虛擬機(jī)上的/boot/grub/grub.cfg到/mnt/boot/grub/,然后修改.
a.修改所有的uuid,用如圖的uuid(sdb1)替換原來(lái)的uuid(每個(gè)分區(qū)有唯一的uuid).
b.如圖修改147,165,182行.
6.拷貝vmlinux和ramdisk.
7.自己寫一個(gè)init程序,測(cè)試內(nèi)核能否啟動(dòng)
編譯命令:gcc -static main.c -o init,然后拷貝init到/mnt.
8.在/mnt下創(chuàng)建proc,sys,dev三個(gè)文件夾,/mnt內(nèi)容如下:
9.啟動(dòng)linux虛擬機(jī),如圖,說明內(nèi)核和init都成功運(yùn)行.
10.拷貝sh和ls命令程序和動(dòng)態(tài)庫(kù). (可以拷貝更多命令)
注意:ubuntu系統(tǒng)的bash無(wú)法在這里當(dāng)作init進(jìn)程,sh實(shí)際是dash
a.先在/mnt下創(chuàng)建bin,lib/x86_64-linux-gnu,lib64文件夾.
b.sudo cp /bin/sh /bin/ls ./bin/
c.查看sh,ls需要哪些動(dòng)態(tài)庫(kù),如下:
d.拷貝步驟c的動(dòng)態(tài)庫(kù)到lib/x86_64-linux-gnu和lib64.
11.啟動(dòng)linux虛擬機(jī),啟動(dòng)前修改grub.cfg的init=/bin/sh,或者啟動(dòng)時(shí)修改.結(jié)果如下:
關(guān)于如何制作比較簡(jiǎn)單的Linux系統(tǒng)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。