跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

計算機已成為現代人日常工作、學習和生活中必不可少的工具。操作系統是計算機之魂,作為用戶使用計算機的接口,它負責調度執行各個用戶程序,使計算機完成特定的任務;作為計算機硬件資源的管理者,它負責協調計算機中各類設備高效地工作。操作系統的重要性不言而喻,市面上主流的操作系統有Windows、Unix、Linux、Mac OS X。

Linux於1991年由芬蘭大學生Linus開發,是一個類Unix的開源版操作系統,主要有以下幾個特點:

開放式操作系統

Linux是一個免費軟件,開發者可以自由安裝並任意修改軟件的源代碼,相比Unix的命令行操作,Linux提供了窗口管理系統,相對容易操作,企業可以免費使用Linux,大大降低了成本預算。

強大的硬件支持

Linux系統非常容易維護,用戶可以集中更新操作系統和所有安裝的軟件,即安全又高效。Linux能有效利用系統資源,允許用戶針對特定的硬件要求進行安裝,允許在舊計算機上安裝Linux,從而有助於最佳地利用計算機硬件資源。

安全性高、穩定性強

Linux系統下除非用戶以root身份登錄,否則程序無法更改系統設置和配置,很少出現因為用戶誤操作導致計算機無法啟動的情形。Linux下載的文件、惡意軟件的權限將受到限制,能有效避免病毒的侵入,Windows系統中常見的勒索病毒、蠕蟲病毒均無法在Linux下運行。Linux非常穩定,不易崩潰,Linux能在幾年後保持和第一次安裝時一樣的運行速度。而Windows的話可能在運行半年後,速度就跟不上了。

Linux系統的成功歸功於每個Linux愛好者的貢獻,不管是在Linux內核還是開源軟件等方面,都為我們後來人提供了一個良好的學習和研究環境。

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

下面我們就一起來做個小實驗:通過裁剪現有Linux系統,根據自己的需要,打造一個屬於自己的Linux小系統,讓其能夠具備Linux的一些常用小功能。

二、原理

啟動流程介紹:

製作Linux小系統之前,我們有必要再瞭解一下Linux的啟動流程:

1、首先Linux要通過POST自檢,檢查硬件設備有沒有故障

2、如果有多塊啟動盤的話,需要在BIOS中選擇啟動磁盤

3、啟動MBR中的bootloader引導程序

4、加載內核文件

5、執行所有進程的父進程、老祖宗init

6、打印歡迎界面

在Linux的啟動流程中,加載內核文件時還需要藉助別外兩個文件:

1)initrd,是CentOS5上用內存模擬的磁盤設備

2)initramfs,是CentOS6上用內存模擬的文件系統

在啟程的流程中,init主要是用來做哪些操作的呢?

init通過調用/etc/inittab這個配置文件,然後再去執行/etc/rc.d/rc.sysinit的系統初始化腳本

好啦,原理我們已經知道了,接下來我們來看看具體的思路吧!

三、思路

1、我們要在一個現有的Linux系統上加一塊硬盤/dev/sdb,在硬盤上分兩個分區,一個是/boot,一個是/,並將其格式化。當然,我們需要明確的概念是,我們現在加的這個硬盤在現有的Linux系統中是/dev/sdb,但是,當我們把東西全部設置好時,我們就需要把這個硬盤拔除,放在我們的新系統上,此時,他就是/dev/sda啦。

2、在/dev/sdb這個硬盤上,我們要將其打造成一個獨立的Linux系統,裡面的所有文件是需要我們一個一個拷貝進去的。而且,作為一個將來要當/dev/sda的硬盤,裡面一定要有grub文件諾~所以我們要安裝grub文件。

3、同時,作為一個能獨立運行的Linux系統,內核是一定不能少的!所以,我們要把內核文件和initramfs文件也一起拷到我們的/dev/sdb上。

4、現在我們系統已經初具規模了,接下來就是需要程序了0.0關於程序的拷貝我們可以通過一個腳本來實現。具體的腳本在下文中會給大家說到。

以上步驟完成,我們的自制Linux就完成啦~我們的思路就是這麼回事,接下來,我們就開始吧!

四、操作步驟

這次實驗我們以centos6.9為例~

1、目標磁盤分區

首先,我們在宿主機上添加一塊大小為20G的硬盤:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

添加完成後,點擊確定,然後我們打開宿主機。 通過fdisk來給我們的/dev/sdb進行分區:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

接下來,我們對/dev/sdb的分區進行格式化:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

格式化完成後,我們創建一個文件夾。進行掛載:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

注意:新建的文件夾必須是/mnt/boot

2、安裝grub至目標磁盤

我們直接用grub-install –root-directory=/mnt命令來安裝。用這個命令會安裝grub引導第二階段的文件。

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

我們可以來看一下二進制確認我們是否安裝成功:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

安裝成功。

3、複製內核文件和initrd文件

將內核文件和initrd文件複製到/dev/sdb下的boot目錄中:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

4、建立grub.conf文件

上面我們已經移植了內核和initrd文件,我們可以根據其版本來編寫grub.conf文件:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

注意,我們要把selinux給關掉,同時設定一下init,告訴內核不要再去找這個程序了,不然開機的時候會出現錯誤的~

5、創建一級目錄並複製文件

至此,我們就缺目錄和文件了~

創建開機後的一級目錄,同時把/dev/sdb2掛載至/mnt/sysroot,使該目錄作為根目錄:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

複製文件,複製文件我們通過腳本執行,複製我們平時常用的命令即可,小編這裡複製了ls,ifconfig,bash,reboot,rm,modprobe,mount,ip,mkdir,touch,cat,vi,less,shutdown,insmod。我們可以用tree查看一下這些命令的複製情況:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

很明顯我們都複製成功了~

附:複製命令的腳本源代碼

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

6、複製網卡驅動

我們基本工作已經完成了,如果想使這個虛擬機帶有網卡功能,我們就必須把網卡驅動拷過來,具體操作如下:

1)查詢網卡詳細信息:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

2)把網卡模塊的路徑複製到/mnt/sysroot的庫文件下:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

以上,我們的操作全部完成。現在我們就可以關機,然後把/dev/sdb這個硬盤拆下來,放到新的虛擬機上運行了~

五、測試開機

我們創建一個新的虛擬機,啟動的時候會帶一個硬盤,我們不用它的,刪掉再把我們自己定義的硬盤加進去:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

此時,我們做好的硬盤已經加進去了。我們可以試試能不能啟動了,如果虛擬機可以正常開啟,就說明我們的實驗成功~

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

六、實現網絡功能

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

由於圖片可能會看不清楚,現把代碼標出如下:

#手動添加網卡驅動

insmod /lib64/e1000.ko

#查看ip

ip a

#添加IP地址

ifconfig eth0 192.168.252.62/24 up

#查看ip

ip a

由於複製命令的時候忘記複製ping了……所以我們用另一臺機器來ping一下這個ip地址:

跟大神一起15分鐘製作一個屬於自己的Linux操作系統!

可以ping通~

至此,我們已經完成了私人訂製Linux的全部操作,同時我們的自制Linux也可以聯網啦~

總結:

近年來,因Linux其穩定、開源、免費、安全、高效的特點,發展迅猛,在服務器市場佔有率超過80%,隨著雲計算的發展,Linux在未來服務器以及個人計算機領域仍是大勢所趨。


分享到:


相關文章: