歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 手把手打造屬於自己的Linux系統

手把手打造屬於自己的Linux系統

日期:2017/2/28 16:09:24   编辑:Linux教程

寫在前面:

1:以下的實現過程都使用VM虛擬機,在這上面實現的。

2:實現打造屬於自己的Linux系統,其實用的是將現有的完整的Linux系統精簡,然後打包做成不到10M的系統。

3:我所用的Linux系統為RedHat Enterprise Linux 5(內核為 2.6.18)

=======================================================================

首先,我們要知道,一個linux的系統之所以能夠啟動,需要什麼?

1.需要一個boot loader,以確保能夠帶起硬盤

2.需要一個內核。(廢話-。-)

3.需要一個小型的能夠加載內核文件系統的程序(initrd)

4.需要一個能夠定義如何啟動的文件(inittab)

5.需要inittab中供啟動的rc.sysinit文件

其實,一個linux能夠啟動,需要的也就是這麼多,那接下來,我們開始一步步著手准備!

-------------------------------------------------------

第一步:准備工作,並創建引導文件!

既然我們需要boot loader能夠帶起硬盤,那麼我們總要先有個硬盤吧?

好,調用虛擬機,給我們的現有的linux額外增加一塊新硬盤,這塊硬盤可以不用太大,夠用就好,比如?嗯……8G,夠你用了吧?

點擊Add,添加一塊新的硬盤,設置大小為8G,其他默認,然後點ok~

進入我們的Linux系統。使用fdisk -l 命令,我們看到了一塊完整的未經開墾的硬盤:

  1. Disk /dev/sdc: 8589 MB, 8589934592 bytes
  2. 255 heads, 63 sectors/track, 1044 cylinders
  3. Units = cylinders of 16065 * 512 = 8225280 bytes
  4. Device Boot Start End Blocks Id System
它的名字叫/dev/sdc

於是,我們開始給他分區,首先我們要給他分一塊主分區,專門放置我們的小系統的內核等重要的文件。

然後我們要分一塊稍微大一點的分區,這是我們的應用分區,我們以後所有的各種文件都將放在這個分區裡。

使用fdisk /dev/sdc 設置我們硬盤的各個分區之後,確認,於是硬盤成了這個樣子:

  1. Disk /dev/sdc: 8589 MB, 8589934592 bytes
  2. 255 heads, 63 sectors/track, 1044 cylinders
  3. Units = cylinders of 16065 * 512 = 8225280 bytes
  4. Device Boot Start End Blocks Id System
  5. /dev/sdc1 1 13 104391 83 Linux
  6. /dev/sdc2 14 136 987997+ 83 Linux
好的~,我們將其格式化成ext3文件系統,然後分別將兩塊硬盤掛載在我們新建的兩個目錄上,

1.我們將/dev/sdc1掛載在/mnt/boot中(這就是我們的存放內核等重要文件的分區)

2.我們將/dev/sdc2掛載在/mut/sysroot下(而這個,就是我們日常應用的分區)


好的,接下來。我們就要開始將boot loader,整個磁盤的引導信息寫入我們新的硬盤中了。

Linux為我們提供了grub這個好用的寫入也是讀取更是引導程序。我們只需要使用命令:

  1. [root@station86 ~]# grub-install --root-directory=/mnt /dev/sdc

即可將grub安裝在了我們的sdc上,並且默認給他的目錄是/mnt。為什麼是/mnt而不是/mnt/boot呢?

因為 grub安裝後,會自動在那個磁盤的根目錄下創建/boot目錄,所以我們只需要指定它的父目錄,即/mnt即可。

於是,我們看看剛才安裝的/mnt下有

  1. total 14
  2. drwxr-xr-x 2 root root 1024 Aug 3 07:45 grub
  3. drwx------ 2 root root 12288 Aug 3 07:42 lost+found
而進入grub裡,則是已經安裝在我們這裡的文件
  1. total 197
  2. -rw-r--r-- 1 root root 60 Aug 3 07:45 device.map
  3. -rw-r--r-- 1 root root 7584 Aug 3 07:45 e2fs_stage1_5
  4. -rw-r--r-- 1 root root 7456 Aug 3 07:45 fat_stage1_5
  5. -rw-r--r-- 1 root root 6720 Aug 3 07:45 ffs_stage1_5
  6. -rw-r--r-- 1 root root 6720 Aug 3 07:45 iso9660_stage1_5
  7. -rw-r--r-- 1 root root 8192 Aug 3 07:45 jfs_stage1_5
  8. -rw-r--r-- 1 root root 6880 Aug 3 07:45 minix_stage1_5
  9. -rw-r--r-- 1 root root 9248 Aug 3 07:45 reiserfs_stage1_5
  10. -rw-r--r-- 1 root root 512 Aug 3 07:45 stage1
  11. -rw-r--r-- 1 root root 104988 Aug 3 07:45 stage2
  12. -rw-r--r-- 1 root root 7072 Aug 3 07:45 ufs2_stage1_5
  13. -rw-r--r-- 1 root root 6272 Aug 3 07:45 vstafs_stage1_5
  14. -rw-r--r-- 1 root root 8904 Aug 3 07:45 xfs_stage1_5
Copyright © Linux教程網 All Rights Reserved