跟大神一起15分鐘制作一個屬于自己的Linux操作系統(tǒng)?。ㄈ绾沃谱鱨inux系統(tǒng))
計算機(jī)已成為現(xiàn)代人日常工作、學(xué)習(xí)和生活中必不可少的工具。操作系統(tǒng)是計算機(jī)之魂,作為用戶使用計算機(jī)的接口,它負(fù)責(zé)調(diào)度執(zhí)行各個用戶程序,使計算機(jī)完成特定的任務(wù);作為計算機(jī)硬件資源的管理者,它負(fù)責(zé)協(xié)調(diào)計算機(jī)中各類設(shè)備高效地工作。操作系統(tǒng)的重要性不言而喻,市面上主流的操作系統(tǒng)有Windows、Unix、Linux、Mac OS X。
Linux于1991年由芬蘭大學(xué)生Linus開發(fā),是一個類Unix的開源版操作系統(tǒng),主要有以下幾個特點:
開放式操作系統(tǒng)
Linux是一個免費軟件,開發(fā)者可以自由安裝并任意修改軟件的源代碼,相比Unix的命令行操作,Linux提供了窗口管理系統(tǒng),相對容易操作,企業(yè)可以免費使用Linux,大大降低了成本預(yù)算。
強(qiáng)大的硬件支持
Linux系統(tǒng)非常容易維護(hù),用戶可以集中更新操作系統(tǒng)和所有安裝的軟件,即安全又高效。Linux能有效利用系統(tǒng)資源,允許用戶針對特定的硬件要求進(jìn)行安裝,允許在舊計算機(jī)上安裝Linux,從而有助于最佳地利用計算機(jī)硬件資源。
安全性高、穩(wěn)定性強(qiáng)
Linux系統(tǒng)下除非用戶以root身份登錄,否則程序無法更改系統(tǒng)設(shè)置和配置,很少出現(xiàn)因為用戶誤操作導(dǎo)致計算機(jī)無法啟動的情形。Linux下載的文件、惡意軟件的權(quán)限將受到限制,能有效避免病毒的侵入,Windows系統(tǒng)中常見的勒索病毒、蠕蟲病毒均無法在Linux下運行。Linux非常穩(wěn)定,不易崩潰,Linux能在幾年后保持和第一次安裝時一樣的運行速度。而Windows的話可能在運行半年后,速度就跟不上了。
Linux系統(tǒng)的成功歸功于每個Linux愛好者的貢獻(xiàn),不管是在Linux內(nèi)核還是開源軟件等方面,都為我們后來人提供了一個良好的學(xué)習(xí)和研究環(huán)境。
下面我們就一起來做個小實驗:通過裁剪現(xiàn)有Linux系統(tǒng),根據(jù)自己的需要,打造一個屬于自己的Linux小系統(tǒng),讓其能夠具備Linux的一些常用小功能。
二、原理
啟動流程介紹:
制作Linux小系統(tǒng)之前,我們有必要再了解一下Linux的啟動流程:
1、首先Linux要通過POST自檢,檢查硬件設(shè)備有沒有故障
2、如果有多塊啟動盤的話,需要在BIOS中選擇啟動磁盤
3、啟動MBR中的bootloader引導(dǎo)程序
4、加載內(nèi)核文件
5、執(zhí)行所有進(jìn)程的父進(jìn)程、老祖宗init
6、打印歡迎界面
在Linux的啟動流程中,加載內(nèi)核文件時還需要借助別外兩個文件:
1)initrd,是CentOS5上用內(nèi)存模擬的磁盤設(shè)備
2)initramfs,是CentOS6上用內(nèi)存模擬的文件系統(tǒng)
在啟程的流程中,init主要是用來做哪些操作的呢?
init通過調(diào)用/etc/inittab這個配置文件,然后再去執(zhí)行/etc/rc.d/rc.sysinit的系統(tǒng)初始化腳本
好啦,原理我們已經(jīng)知道了,接下來我們來看看具體的思路吧!
三、思路
1、我們要在一個現(xiàn)有的Linux系統(tǒng)上加一塊硬盤/dev/sdb,在硬盤上分兩個分區(qū),一個是/boot,一個是/,并將其格式化。當(dāng)然,我們需要明確的概念是,我們現(xiàn)在加的這個硬盤在現(xiàn)有的Linux系統(tǒng)中是/dev/sdb,但是,當(dāng)我們把東西全部設(shè)置好時,我們就需要把這個硬盤拔除,放在我們的新系統(tǒng)上,此時,他就是/dev/sda啦。
2、在/dev/sdb這個硬盤上,我們要將其打造成一個獨立的Linux系統(tǒng),里面的所有文件是需要我們一個一個拷貝進(jìn)去的。而且,作為一個將來要當(dāng)/dev/sda的硬盤,里面一定要有g(shù)rub文件諾~所以我們要安裝grub文件。
3、同時,作為一個能獨立運行的Linux系統(tǒng),內(nèi)核是一定不能少的!所以,我們要把內(nèi)核文件和initramfs文件也一起拷到我們的/dev/sdb上。
4、現(xiàn)在我們系統(tǒng)已經(jīng)初具規(guī)模了,接下來就是需要程序了0.0關(guān)于程序的拷貝我們可以通過一個腳本來實現(xiàn)。具體的腳本在下文中會給大家說到。
以上步驟完成,我們的自制Linux就完成啦~我們的思路就是這么回事,接下來,我們就開始吧!
四、操作步驟
這次實驗我們以centos6.9為例~
1、目標(biāo)磁盤分區(qū)
首先,我們在宿主機(jī)上添加一塊大小為20G的硬盤:
添加完成后,點擊確定,然后我們打開宿主機(jī)。 通過fdisk來給我們的/dev/sdb進(jìn)行分區(qū):
接下來,我們對/dev/sdb的分區(qū)進(jìn)行格式化:
格式化完成后,我們創(chuàng)建一個文件夾。進(jìn)行掛載:
注意:新建的文件夾必須是/mnt/boot
2、安裝grub至目標(biāo)磁盤
我們直接用grub-install –root-directory=/mnt命令來安裝。用這個命令會安裝grub引導(dǎo)第二階段的文件。
我們可以來看一下二進(jìn)制確認(rèn)我們是否安裝成功:
安裝成功。
3、復(fù)制內(nèi)核文件和initrd文件
將內(nèi)核文件和initrd文件復(fù)制到/dev/sdb下的boot目錄中:
4、建立grub.conf文件
上面我們已經(jīng)移植了內(nèi)核和initrd文件,我們可以根據(jù)其版本來編寫grub.conf文件:
注意,我們要把selinux給關(guān)掉,同時設(shè)定一下init,告訴內(nèi)核不要再去找這個程序了,不然開機(jī)的時候會出現(xiàn)錯誤的~
5、創(chuàng)建一級目錄并復(fù)制文件
至此,我們就缺目錄和文件了~
創(chuàng)建開機(jī)后的一級目錄,同時把/dev/sdb2掛載至/mnt/sysroot,使該目錄作為根目錄:
復(fù)制文件,復(fù)制文件我們通過腳本執(zhí)行,復(fù)制我們平時常用的命令即可,小編這里復(fù)制了ls,ifconfig,bash,reboot,rm,modprobe,mount,ip,mkdir,touch,cat,vi,less,shutdown,insmod。我們可以用tree查看一下這些命令的復(fù)制情況:
很明顯我們都復(fù)制成功了~
附:復(fù)制命令的腳本源代碼
6、復(fù)制網(wǎng)卡驅(qū)動
我們基本工作已經(jīng)完成了,如果想使這個虛擬機(jī)帶有網(wǎng)卡功能,我們就必須把網(wǎng)卡驅(qū)動拷過來,具體操作如下:
1)查詢網(wǎng)卡詳細(xì)信息:
2)把網(wǎng)卡模塊的路徑復(fù)制到/mnt/sysroot的庫文件下:
以上,我們的操作全部完成?,F(xiàn)在我們就可以關(guān)機(jī),然后把/dev/sdb這個硬盤拆下來,放到新的虛擬機(jī)上運行了~
五、測試開機(jī)
我們創(chuàng)建一個新的虛擬機(jī),啟動的時候會帶一個硬盤,我們不用它的,刪掉再把我們自己定義的硬盤加進(jìn)去:
此時,我們做好的硬盤已經(jīng)加進(jìn)去了。我們可以試試能不能啟動了,如果虛擬機(jī)可以正常開啟,就說明我們的實驗成功~
六、實現(xiàn)網(wǎng)絡(luò)功能
由于圖片可能會看不清楚,現(xiàn)把代碼標(biāo)出如下:
#手動添加網(wǎng)卡驅(qū)動
insmod /lib64/e1000.ko
#查看ip
ip a
#添加IP地址
ifconfig eth0 192.168.252.62/24 up
#查看ip
ip a
由于復(fù)制命令的時候忘記復(fù)制ping了……所以我們用另一臺機(jī)器來ping一下這個ip地址:
可以ping通~
至此,我們已經(jīng)完成了私人訂制Linux的全部操作,同時我們的自制Linux也可以聯(lián)網(wǎng)啦~
總結(jié):
近年來,因Linux其穩(wěn)定、開源、免費、安全、高效的特點,發(fā)展迅猛,在服務(wù)器市場占有率超過80%,隨著云計算的發(fā)展,Linux在未來服務(wù)器以及個人計算機(jī)領(lǐng)域仍是大勢所趨。
本文技術(shù)引用來源:cnblog
作者:珂兒吖