国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

制作在軟盤(pán)上跑的Linux引導(dǎo)器詳細(xì)過(guò)程

2024-07-26 00:35:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  1. 軟盤(pán)上安裝引導(dǎo)器(grub)

  一般制作軟盤(pán)上跑的linux引導(dǎo)器都使用sysLinux這個(gè)工具(這個(gè)工具不支持ext2分區(qū)格式,只能支持fat分區(qū)格式),因?yàn)槲覍?duì)grub比較熟悉,并且我在軟盤(pán)上安裝grub只用了132KB空間,不是很耗磁盤(pán)空間。

  具體操作如下:


# mke2fs /dev/fd0

  創(chuàng)建了 ext2 文件系統(tǒng)后,需要安裝該文件系統(tǒng):


# mount /dev/fd0 /mnt/floppy

  現(xiàn)在,需要?jiǎng)?chuàng)建一些目錄,并將一些關(guān)鍵文件(原先安裝 GRUB 時(shí)已安裝了這些文件)復(fù)制到軟盤(pán):


# 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

  再有一個(gè)步驟,就能得到可用的引導(dǎo)盤(pán)。

  在Linux bash中,從 root 用戶(hù)運(yùn)行“grub”,該程序非常有趣并值得注意,因?yàn)樗鼘?shí)際上是 GRUB 引導(dǎo)裝入器的半功能性版本。盡管 Linux 已經(jīng)啟動(dòng)并正在運(yùn)行,您仍可以運(yùn)行 GRUB 并執(zhí)行某些任務(wù),而且其界面與使用 GRUB 引導(dǎo)盤(pán)或?qū)?GRUB 安裝到硬盤(pán) MBR 時(shí)看到的界面(即GRUB控制臺(tái))完全相同。

  在 grub> 提示符處,輸入:


grub> root (fd0) 
grub> setup (fd0) 
grub> quit

  現(xiàn)在,引導(dǎo)盤(pán)完成了。
  2. 安裝根文件系統(tǒng)
  一套Linux系統(tǒng)要正常啟動(dòng),根文件系統(tǒng)要包括下列文件夾:


/bin /etc /PRoc /tmp /var /dev /mnt

  要包括下列基本的設(shè)備文件:


/dev/console /dev/fd0 /dev/null /dev/ram0 /dev/tty /dev/tty0

  要包括下列配置文件:


/etc/rc.d/inittab /etc/rc.d/rc.sysinit /etc/fstab

  要實(shí)現(xiàn)基本的功能,還要包括一些常用工具:如:sh,ls,cd,cat等。其中,前面三個(gè)部分不要多少空間的,但是常用工具會(huì)占用很多空間,要是用原來(lái)系統(tǒng)中的這些命令,就是全部用靜態(tài)編譯,不是用動(dòng)態(tài)連接庫(kù),大概有2MB~3MB,放不進(jìn)軟盤(pán)。網(wǎng)絡(luò)上解決的方案是使用BusyBox工具。具體可以到官方網(wǎng)站:www.busybox.net看看。下載BusyBox工具的源代碼。

  注意:

  (1) 譯的時(shí)候要靜態(tài)編譯,修改 Makefile 中的 DOSTATIC 參數(shù),從false 改為 true,這樣,編譯出來(lái)的代碼就不要依賴(lài)glibc了。

  (2) 因?yàn)槲覀冇玫氖?BusyBox 上的 init,與一般所使用的 init 不太一樣,會(huì)先執(zhí)行 /etc/init.d/rcS 而非 /etc/rc.d/rc.sysinit,為了做出來(lái)的 FloppyLinux 架構(gòu)與 Redhat 的架構(gòu)一樣,所以修改了 BusyBox 中的 init.c底下是修到的部分內(nèi)容∶


#ifndef INIT_SCRipT
#define INIT_SRCIPT "/etc/rc.d/rc.sysinit"
#endif

  具體操作如下:

  (1) 官方網(wǎng)站上下載BusyBox的最新版本:busybox-0.60.5.tar.gz解開(kāi),按照上面的注意點(diǎn)修改源代碼。

  (2) 運(yùn)行下列命令:


#make
#make install

  (3) 譯好的可勢(shì)行文件放在 ./_install 文件夾里的。


#cp ./_install /tmp/floppy-Linux -r

  (4) 動(dòng)建立其它的文件或文件夾:


#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) 建啟動(dòng)配置文件:(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.編譯內(nèi)核:

  這部分內(nèi)容不詳細(xì)講述,主要是去掉了一些不需要的選項(xiàng),減小內(nèi)核,編譯出來(lái)的內(nèi)核是725920Byte。里面包含了必要的網(wǎng)卡驅(qū)動(dòng)和網(wǎng)絡(luò)協(xié)議棧。

  4.整合啟動(dòng)盤(pán)

  現(xiàn)在所用到了的東西全部搞好了,下面就是整合一下:

  全部文件(文件夾)如下:


/lost+found/
/boot/
/boot/grub/
/boot/grub/stage1 =========èGrub啟動(dòng)時(shí)用到的兩個(gè)文件
/boot/grub/stage2
/boot/grub/menu.lst =========èGrub的配置文件指向grub.conf
/boot/grub/grub.conf
/boot/kernel =============è內(nèi)核
/initrd.gz ===============è內(nèi)存鏡像文件

  這樣這張軟盤(pán)就能啟動(dòng)一套Linux系統(tǒng)了,占用1.213MB。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔西县| 石林| 舒兰市| 华容县| 正宁县| 南岸区| 格尔木市| 九寨沟县| 肇东市| 通州市| 明光市| 都江堰市| 化州市| 颍上县| 长汀县| 望江县| 山阴县| 泽普县| 四会市| 九台市| 浑源县| 衡南县| 新乡市| 贵溪市| 福泉市| 广宗县| 山东省| 诸城市| 尚志市| 珲春市| 嘉禾县| 望江县| 平罗县| 桐乡市| 化隆| 宜阳县| 丰台区| 喀喇沁旗| 博兴县| 田东县| 绵阳市|