宿主機上安裝小linux

今天自己利用vmwere軟件做了一個小型的linux,下面把實驗心得寫出來分享給大家。 

實驗環境:使用vmwere軟件,在已經創建的一個虛擬機中再添加一塊硬盤,5G左右就已經足夠(爲了以後實驗別太吝嗇自己的空間喲)。

實驗操作:

打開此虛擬機,以root或管理員身份登錄後,使用fdisk –l命令查看硬盤分區情況,此時發現新添加的硬盤未分區(這裏我們假設第一塊硬盤是/dev/sda,第二塊硬盤是/dev/sdb,此處便是/dev/sdb未做任何處理,

然後對此塊硬盤進行分區,由於實驗需要,暫時我們將此硬盤分爲兩個分區(根分區和boot分區)/dev/sdb1/dev/sdb2,方便操作以及後期的使用,此處我們將這兩個分區格式化爲ext3格式,

fdisk /dev/sdb

mke2fs –j  /dev/sdb1

mke2fs –j  /dev/sdb2

(此處硬盤規劃:將/dev/sdb1創建爲500M大小,爲以後的boot分區,/dev/sdb1創建爲512M大小爲以後的根分區/

然後建立兩個掛載點,/mnt/boot/mnt/sysroot,分別將先前的兩個分區掛載在這兩個掛載點上,

mkdir /mnt/boot

mkdir /mnt/sysroot

mount /dev/sdb1 /mnt/boot

mount /dev/sdb2  /mnt/sysroot

然後我們就可以在第一塊分區上創建系統引導程序(這裏我們使用grub-install命令創建grub),

grub-install –root-directory=/mnt  /dev/sdb

cd   /mnt/boot


換到/mnt/boot目錄下,我們就發現已經多了幾個文件,更包含grub目錄,此時grub目錄下面並沒有grub.conf配置文件,稍後我們將作配置,這時系統肯定無法啓動,

接下來我們再將系統中的vmlinuz-2.6.18-164.el5(此處因爲版本不同可能會和您的版本號不同)文件拷到/mnt/boot目錄下,

cp  vmlinuz-2.6.18-164.el5.img  .

此時我們需要對另外一個文件initrd-2.6.18-164.el5.img作一定的處理,切換到系統/tmp目錄中,創建一個目錄:

mkdir  initrd

cp    /boot/ initrd-2.6.18-164.el5.img  /tmp/initrd

切換到此目錄下利用zcatcpio命令展開此文件

zcat initrd-2.6.18-128.el5.img |cpio –id

然後編輯展開目錄下的init文件中

修改mkrootdev -t ext3 -o defaults,ro /dev/vol0/root

mkrootdev -t ext3 -o defaults,ro  sda2

保存退出(此處sda2爲要創建文件的根目錄)

然後再將此目錄下的文件歸檔並壓縮到指定目錄,命名爲initrd.gz

rm –f  initrd-2.6.18-164.el5.img

find . |cpio -H newc -o --quiet |gzip -9 > /mnt/boot/initrd.g

這時再來編輯grub配置文件grub.conf

default=0

timeout=10

title  kingshuo's little linux

        root (hd0,0)

        kernel /vmlinuz ro root=/dev/sda2    quiet

        initrd /initrd.gz

然後進入/mnt/sysroot目錄中創建系統必需的目錄

mkdir -p {boot,proc,sys,dev,home,root,etc/{rc.d,sysconfig,init.d},bin,sbin,lib,usr/{bin,sbin,lib,include},var/{log,run},tmp,mnt,opt,media

再編輯/mnt/sysroot/etc/inittab文件

id:3:initdefault:

si::sysinit:/etc/rc.d/rc.sysinit

保存退出

再編輯/mnt/sysroot/etc/rc.d/rc.sysinit文件

#!/bin/bash

echo -e  echo -e "\t\tWelcome to \033[31;1mLittle\033[0m Linux..."

/bin/bash

因爲此文件是個系統初始化啓動腳本故需要添加執行權限

chmod  +x  /mnt/sysroot/etc/rc.d/rc.sysinit

此時系統還沒有運行環境,需要使用拷貝bash

還需要拷貝與bash運行調用的庫函數

ldd /bin/bash

cp /bin/bash  /mnt/sysroot/bin/bash

cd  /mnt/sysroot/bin/

cp /lib/libtermcap.so.2 /mnt/sysroot/lib/

cp /lib/libdl.so.2  /mnt/sysroot/lib/

cp /lib/libc.so.6  /mnt/sysroot/lib/

cp /lib/ld-linux.so.2  /mnt/sysroot/lib/

然後進入/mnt/boot/bash,建立鏈接

ln  –sv  bash sh

這時您就可以在當前虛擬機上測試了

這時您還不太相信吧,接下來您可以再新建一個虛擬機,利用現有的虛擬磁盤


準備停當後打開剛建的虛擬機,見證奇蹟的時刻到了!


當然在這個系統中不能實現過多的命令,當您想實現更多的功能,想要添加相應的命令時,按照上述命令執行相應命令及函數的拷貝,自己趕快實驗吧!

 

 由於能力有限,可能某些細節及原理上敘述的不是很清楚,也難免有錯誤,歡迎大家指正!下面有個小腳本能夠實行小linux的創建,有興趣的話可以嘗試一下!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章