歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 軟盤上安裝引導器

軟盤上安裝引導器

日期:2017/2/27 14:22:06   编辑:更多Linux
  一般制作軟盤上跑的Linux引導器都使用syslinux這個工具(這個工具不支持ext2分區格式,只能支持fat分區格式),因為我對grub比較熟悉,並且我在軟盤上安裝grub只用了132KB空間,不是很耗磁盤空間。 具體操作如下: # mke2fs /dev/fd0 創建了 ext2 文件系統後,需要安裝該文件系統: # mount /dev/fd0 /mnt/floppy 現在,需要創建一些目錄,並將一些關鍵文件(原先安裝 GRUB 時已安裝了這些文件)復制到軟盤: # mkdir /mnt/floppy/boot # mkdir /mnt/floppy/boot/grub # cp /boot/grub/stage1 /mnt/floppy/boot/grub # cp /boot/grub/stage2 /mnt/floppy/boot/grub 再有一個步驟,就能得到可用的引導盤。 在linux bash中,從 root 用戶運行“grub”,該程序非常有趣並值得注意,因為它實際上是 GRUB 引導裝入器的半功能性版本。盡管 Linux 已經啟動並正在運行,您仍可以運行 GRUB 並執行某些任務,而且其界面與使用 GRUB 引導盤或將 GRUB 安裝到硬盤 MBR 時看到的界面(即GRUB控制台)完全相同。 在 grub> 提示符處,輸入: grub> root (fd0) grub> setup (fd0) grub> quit 現在,引導盤完成了。 2. 安裝根文件系統: 一套linux系統要正常啟動,根文件系統要包括下列文件夾: /bin /etc /proc /tmp /var /dev /mnt 要包括下列基本的設備文件: /dev/console /dev/fd0 /dev/null /dev/ram0 /dev/tty /dev/tty0 要包括下列配置文件: /etc/rc.d/inittab /etc/rc.d/rc.sysinit /etc/fstab 要實現基本的功能,還要包括一些常用工具: 如:sh,ls,cd,cat…… 其中,前面三個部分不要多少空間的,但是常用工具會占用很多空間,要是用原來系統中的這些命令,就是全部用靜態編譯,不是用動態連接庫,大概有 2MB~3MB,放不進軟盤。網絡上解決的方案是使用BusyBox工具。具體可以到官方網站:www.busybox.net看看。 下載BusyBox工具的源代碼,編譯: 注意: (1) 譯的時候要靜態編譯,修改 Makefile 中的 DOSTATIC 參數,從false 改為 true,這樣,編譯出來的代碼就不要依賴glibc了。 (2) 因為我們用的是 BusyBox 上的 init,與一般所使用的 init 不太一樣,會先執行 /etc/init.d/rcS 而非 /etc/rc.d/rc.sysinit,為了做出來的 FloppyLinux 架構與 Redhat 的架構一樣,所以修改了 BusyBox 中的 init.c底下是修到的部分內容∶ #ifndef INIT_SCRIPT #define INIT_SRCIPT "/etc/rc.d/rc.sysinit" #endif 具體操作如下: (1) 官方網站上下載BusyBox的最新版本:busybox-0.60.5.tar.gz解開,按照上面的注意點修改源代碼 (2) 運行下列命令: #make #make install (3) 譯好的可勢行文件放在 ./_install 文件夾裡的。 #cp ./_install /tmp/floppy-linux -r (4) 動建立其它的文件或文件夾: #cd /tmp/floppy-linux # mkdir dev etc etc/rc.d proc mnt tmp var # chmod 755 dev etc etc/rc.d bin mnt tmp var # chmod 555 proc # cd dev # mknod tty c 5 0 # mknod console c 5 1 # chmod 666 tty console # mknod tty0 c 4 0 # chmod 666 tty0 # mknod ram0 b 1 0 # chmod 600 ram0 # mknod fd0 b 2 0 # chmod 600 fd0 # mknod null c 1 3


# chmod 666 null (5) 建啟動配置文件:(inittab,rc.sysinit,fstab) initab: ::sysinit:/etc/rc.d/rc.sysinit ::askfirst:/bin/sh rc.sysinit: #!/bin/sh mount -a # chmod 755 rc.sysinit fstab: proc /proc proc defaults 0 0 (6) 作Ramdisk的鏡像文件: # dd if=/dev/zero of=/tmp/initrd bs=1k count=4096 # losetup /dev/loop0 /tmp/initrd # mke2fs -m 0 /dev/loop0> # mount -t ext2 /dev/loop0 /mnt # cp -r /tmp/floppy-linux/* /mnt # umount /mnt # losetup -d /dev/loop0 # dd if=/tmp/initrd gzip -9 > /tmp/initrd.gz # rm -f /tmp/initrd # sync 3.編譯內核: 這部分內容不詳細講述,主要是去掉了一些不需要的選項,減小內核,編譯出來的內核是725920Byte。裡面包含了必要的網卡驅動和網絡協議棧。 4.整合啟動盤 現在所用到了的東西全部搞好了,下面就是整合一下: 全部文件(文件夾)如下: /lost+found/ /boot/ /boot/grub/ /boot/grub/stage1 =========èGrub啟動時用到的兩個文件 /boot/grub/stage2 /boot/grub/menu.lst =========èGrub的配置文件指向grub.conf /boot/grub/grub.conf /boot/kernel =============è內核 /initrd.gz ===============è內存鏡像文件 這樣這張軟盤就能啟動一套Linux系統了,占用1.213MB。



/boot/kernel =============è內核 /initrd.gz ===============è內存鏡像文件 這樣這張軟盤就能啟動一套Linux系統了,占用1.213MB。



Copyright © Linux教程網 All Rights Reserved