歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在VMware上制作一個簡單的Linux

在VMware上制作一個簡單的Linux

日期:2017/2/28 14:50:35   编辑:Linux教程

大體思路

boot root initrd.gz grub vmlinuz-2.6.18-308.el5 bin sbin lib etc proc sys dev boot

有以上內容我們就可以運行一個非常簡單的Linux,只需要往裡面添加各種配置文件,就可以啟動我們所需要的各種服務。在制作之前,我們先做一些准備工作。

1、在VMware上添加一塊新的IDE磁盤

2、將這塊盤分區,/dev/hdb1 /dev/hdb2,之後格式化為ext3的文件系統

3、掛載/dev/hdb1到/mnt/boot;掛載/dev/hdb2到/mnt/sysroot

前提工作做完之後,我們就可以分別制作boot和root了!那麼我們就開始吧

制作boot分區:

●initrd.gz

initrd.gz其實是一個小的root,它也包含bin sbin lib etc proc sys dev mnt這些目錄,並且還有一個重要的腳本文件init,實現從這個小root到我們真正的root的轉換的功能。最終為了保證我們的Linux體積足夠小,我們就把以上的全部壓縮成了initrd.gz。

但是為了保證我們的小linux能夠實現各種功能,我們只添加目錄是不夠的,因此我們使用busybox來虛擬bin sbin usr下的各種程序。因此我們要先制作一個busybox。

我們下載穩定版的busybox版本busybox-1.20.2.tar.bz2

  1. tar -xf busybox-1.20.2.tar.bz2 -C /tmp 把busybox-1.20.2.tar.bz2解壓到/tmp目錄下
  2. cd /tmp/busybox-1.20.2 切換到 /tmp/busybox-1.20.2目錄下
  3. make menuconfig 使用圖形窗口對busybox進行編譯

進入圖形界面後,重要的一項是把busybox所依賴的庫文件做進busybox本身,這個庫只提供給busybox調度使用;

  1. make install 要確保在/tmp/busybox-1.20.2/目錄下使用命令

但是我們會發現安裝並不成功

因此我需要下載一個更高版本的內核頭文件,然後把它放在/tmp/busybox-1.20.2/include/mtd/

,因為我虛擬機上有linux-2.6.38.5的內核頭文件,所以我就直接復制到上面目錄下就可以了

  1. mkdir /tmp/busybox-1.20.2/include/mtd 創建mtd目錄
  2. cd /tmp/busybox-1.20.2/include/mtd/ 切換至該目錄下
  3. cp /usr/src/linux-2.6.38.5/include/mtd/ubi-user.h ./ 把頭文件復制到當前目錄下
  4. cd /tmp/busybox-1.20.2 再切回原busybox目錄下
  5. make install 繼續安裝就可以了

安裝完成後,會在/tmp/busybox-1.20.2/目錄下生成一個_install的目錄,這表明我們的busybox安裝成功了,並且_install目錄下有我們所需要的bin sbin usr目錄和各種程序腳本。

  1. cp ./_install/* /mnt/boot -a 把_install目錄下的所有文件復制到/mnt/boot目錄下
  2. cd /mnt/boot 在切換到/mnt/boot目錄下,即我們的小linux的boot

可以說現在才開始編寫我們真正的initrd.gz

我們發現/mnt/boot目錄下缺少很多目錄,所以我們手動添加幾個進去

  1. mkdir etc proc sys lib/modules/ dev mnt/sysroot tmp -p 創建mnt/sysroot是為了實現根的切換
Copyright © Linux教程網 All Rights Reserved