之前幾篇也一直探究如何自已編譯Linux並且產生ISO,在VirtualBox中運行。實驗了幾天,也不得其法。正好找到一篇文章參考:
前言
1.首先建立個硬碟鏡像
2. 為磁碟鏡像分區
3. 格式化分區
4. 按照檔案系統
5. 編譯grub
6. 編譯busybox
7.編譯核心, 我用的是2.6.31.3
8. 製作initrd.gz
9. 編輯文集 mnt/boot/menu.lst
10. 編寫設定檔
11 安裝grub
12. 轉換磁碟鏡像
13. 用VirtualBox 建立虛擬機器運行吧
1.首先建立個硬碟鏡像:
dd if=/dev/zero of=hd.img bs=1M count=512
2. 為磁碟鏡像分區
首先作為一個loop device 安裝
losetup /dev/loop1 hd.img
fdisk /dev/loop1
對其進行分區,我是只分了一個主要磁碟分割
3. 格式化分區
注意:由於我們只有個loop1 指向hd.img的磁碟開始,而我們現在需要的是hd.img分區,所以我們要用到另一個loop device:
losetup -o 32256 /dev/loop2 /dev/loop1
mkfs.ext2 /dev/loop2
4. 按照檔案系統:
mkdir ./mnt
mount -o loop /dev/loop2 mnt
cd mnt
mkdir -p boot/grub
5. 編譯grub:
這個沒什麼可說的,如果你不想麻煩,可以直接從你的Linux相同上複製.
cp /YOUR-PATH/stage[12] mnt/boot/grub
6. 編譯busybox
cp /busybox/_install/* mnt/ -av
7. 編譯核心, 我用的是2.6.31.3
cp vmlinuz mnt/boot
8. 製作initrd.gz
cp initrd.gz mnt/boot
9.編輯文集 mnt/boot/menu.lst
default 0
title MyLinux
root (hd0,0)
kernel /boot/vmlinuz
initrd /boot/initrd.gz
10.安裝grub
grub --device-map=/dev/nul
grub> device (hd0) hd.img
grub> root (hd0,0)
grub> setup (hd0)
11.轉換磁碟鏡像
qemu-img convert hd.img -O raw hd.raw VBoxManage convertdd hd.raw hd.vdi
12.用VirtualBox 建立虛擬機器運行