本文為大家介紹制作linux系統(tǒng)啟動(dòng)u盤(pán)(linux系統(tǒng)u盤(pán)啟動(dòng)盤(pán)制作工具),下面和小編一起看看詳細(xì)內(nèi)容吧。
usb閃存存儲(chǔ)設(shè)備(usb)一般只有鑰匙扣大小,存儲(chǔ)容量多為32mb和64mb。由于具有輕巧精致、使用方便、攜帶方便等優(yōu)點(diǎn),特別是與軟盤(pán)相比,具有容量更大、安全可靠、讀取速度更快等特點(diǎn),越來(lái)越多的人使用這種設(shè)備來(lái)更換軟驅(qū)和軟盤(pán)。之間交換文件。目前,新的主板bios支持usb軟盤(pán)和硬盤(pán)啟動(dòng)方式,使得windows 98的系統(tǒng)維護(hù)和安裝越來(lái)越方便。但是廠(chǎng)家只提供制作windows 98啟動(dòng)盤(pán)的工具,不提供制作linux啟動(dòng)盤(pán)的工具。在u盤(pán)上制作linux啟動(dòng)盤(pán)對(duì)于系統(tǒng)維護(hù)人員來(lái)說(shuō)比較實(shí)用。您可以使用linux創(chuàng)建一個(gè)緊湊的內(nèi)核,建立一個(gè)網(wǎng)絡(luò)環(huán)境,快速判斷和排除網(wǎng)絡(luò)故障和傳輸文件。本文以red hat 8.0為例,使用朗科雙啟動(dòng)u盤(pán)從u盤(pán)制作linux啟動(dòng)盤(pán),幫助大家解決如何制作u盤(pán)的問(wèn)題。
下載相關(guān)軟件:e3、bvi、liuux內(nèi)核。
首先,電腦的主板必須支持u盤(pán)啟動(dòng)方式,使用的u盤(pán)是可啟動(dòng)的u盤(pán)。
我以linux-2.4.20 為例。編譯的時(shí)候注意不要編譯不需要的模塊,比如聲卡驅(qū)動(dòng)等驅(qū)動(dòng)模塊,這樣編譯出的內(nèi)核盡量小。要支持usb 引導(dǎo),必須將scsi 設(shè)備、usbcore、usb-storage、loopback 設(shè)備支持、ram 磁盤(pán)支持和initrd 編譯到內(nèi)核中。
很多人會(huì)問(wèn),內(nèi)核中已經(jīng)包含了usb-storage模塊,為什么還要?jiǎng)?chuàng)建一個(gè)initrd.img文件呢?這是因?yàn)閡盤(pán)的初始化過(guò)程比/sbin/init的執(zhí)行速度慢,所以?xún)?nèi)核已經(jīng)啟動(dòng)了,但是u盤(pán)還沒(méi)有完成初始化工作,所以根文件系統(tǒng)還沒(méi)有被加載。這時(shí)候/sbin/init命令肯定執(zhí)行不成功。通過(guò)創(chuàng)建initrd.img文件,啟動(dòng)內(nèi)核時(shí)將initrd.img文件載入內(nèi)存,等待3秒u盤(pán)完成初始化工作,然后執(zhí)行/sbin/init命令。具體操作步驟如下。
1.創(chuàng)建initrd.img文件u盤(pán)home
# mkdir -p /mnt/initrd
# cd /tmp
# mkinitrd /tmp/initrd.gz 2.4.20-usb
2.解壓initrd.img文件,修改啟動(dòng)腳本linuxrc
# gunzip initrd.gz
# mount -o loop /tmp/initrd /mnt/initrd
# cp /sbin/busybox /mnt/initrd/bin
# cd /mnt/initrd/bin
# ln -s busybox 睡眠
# vi /mnt/initrd/linuxrc usb 主頁(yè)
添加以下內(nèi)容:
echo '等3秒.'
/bin/睡眠3
3.重新生成initrd.img文件
由于默認(rèn)創(chuàng)建的initrd文件比較大(4mb),為了加快u盤(pán)的啟動(dòng)速度,必須對(duì)其進(jìn)行壓縮。具體操作如下:
# mkdir -p /mnt/initrdusb
# cd /tmp
# dd if=/dev/zero of=/tmp/initrdusb bs=1m count=1
# mke2fs -m 0 initrdusb
# mount -o loop /tmp/initrdusb /mnt/initrdusb
# cp -a /mnt/initrd/* /mnt/initrdusb
# 卸載/mnt/initrd
# 卸載/mnt/initrdusb
# cd /tmp
# gzip -9 initrdusb
# cp initrdusb.gz /boot/initrd-2.4.20-usb.img
4.測(cè)試編譯后的內(nèi)核是否正常啟動(dòng)
測(cè)試編譯好的內(nèi)核是否可以正常啟動(dòng),啟動(dòng)過(guò)程中是否可以看到u盤(pán)的相關(guān)信息。
制作u盤(pán)啟動(dòng)盤(pán)
1.將u盤(pán)分成兩個(gè)分區(qū)
linux分區(qū)的容量完全取決于安裝了哪些系統(tǒng)維護(hù)工具。結(jié)果如下:
# modprobe usb 存儲(chǔ)
# fdisk -l /dev/sda
磁盤(pán)/dev/sda: 16磁頭,63扇區(qū),126柱面
單位=1008 * 512 字節(jié)的柱面
設(shè)備啟動(dòng)開(kāi)始結(jié)束塊id 系統(tǒng)
/dev/sda1 1 102 51376+ 6 fat16
/dev/sda2 103 126 12096 83 linux
注意:
如果需要使用優(yōu)盤(pán)引導(dǎo)windows 98,扇區(qū)大小必須設(shè)置為63個(gè)扇區(qū),可以通過(guò)fdisk的x命令擴(kuò)展修改heads、sectors和cylinders參數(shù)。
2.建立與生成ext2分區(qū) 優(yōu)盤(pán)之家
# mke2fs -m 0 /dev/sda2
# mkdir -p /mnt/sda2
# mount /dev/sda2 /mnt/sda2
# cd /mnt/sda2
3.建立boot目錄 優(yōu)盤(pán)之家
將編譯好的內(nèi)核與initrd-2.4.20-usb.img文件拷貝到boot目錄、編譯好的模塊拷貝到lib/modules目錄,以及將/boot/grub的文件拷貝到boot目錄,編輯boot/grub/menu.lst文件,內(nèi)容如下:
timeout 10
color 0x17 0x70
default 0
title windows 98
rootnoverify (hd0,0)
makeactive
chainloader +1
title gnu/linux redhat 8.0 (2.4.20-usb)
root (hd0,1)
kernel /boot/vmlinuz-2.4.20-usb ro root=/dev/sda2
initrd /boot/initrd-2.4.20-usb.img
安裝grub,具體操作如下:
grub> root (hd1,1)
grub> setup (hd1)
4.建立bin目錄 u盤(pán)之家
根據(jù)自工作的需要拷貝系統(tǒng)維護(hù)工具,如insmod、fsck和mkdosfs等實(shí)用程序。一定要注意使用ldd命令檢查那些共享庫(kù)文件,這些文件需要按照原來(lái)的路徑拷貝到lib目錄。 由于受到磁盤(pán)空間的限制,使用busybox命令代替一些常見(jiàn)的linux命令,主要原因就是busybox 文件非常小,并且是靜態(tài)鏈接的,包括許多常見(jiàn)的linux命令(如cat、init、ifconig、route)用ln -s busybox建立這些文件的符號(hào)聯(lián)接??梢愿鶕?jù)個(gè)人需要重新編譯busybox,包括vi等命令,也可以使用小巧的e3代替vi。 www.upan.cc
另外,如果使用bash,還必須編輯與裁減/etc/termcap及如下文件:
/bin/bash
/etc/termcap
/usr/share/terminfo/l/linux
/usr/share/terminfo/k/klone+acs
/usr/share/terminfo/k/klone+color
/usr/share/terminfo/k/klone+sgr 優(yōu)盤(pán)之家
5.建立dev目錄
使用cp -a命令拷貝常用的設(shè)備文件,包括console、tty1、tty2、tty3sda、sda1、sda2、hda、hdb和hda1等設(shè)備文件。
6.編輯etc/init.d/rcs
內(nèi)容如下:
#!/bin/sh
path=/sbin:/bin
export path
mount -n -t proc none /proc
umount /initrd
mount -n -o remount,rw /
mount -n -o remount,rw -t proc none /proc
ifconfig lo 127.0.0.1
7.編輯etc/fstab文件
內(nèi)容如下: u盤(pán)之家
/dev/sda2 / ext2 defaults 1 1
none /proc proc defaults 0 0
應(yīng)用舉例
舉一個(gè)傳送文件的例子。在一臺(tái)正常工作的linux機(jī)器a(ip=192.168.100.5)上執(zhí)行:
$ tar cf - win98 | nc -l -p 5555
注意:可以在機(jī)器b上使用優(yōu)盤(pán)啟動(dòng)機(jī)器,telnet登陸到機(jī)器a上執(zhí)行以上命令。
在機(jī)器b上使用優(yōu)盤(pán)啟動(dòng)執(zhí)行: 優(yōu)盤(pán)之家
# mount -t vfat -o codepage=938,iocharset=cp936 /dev/hda5 /mnt/2dos
# cd /mnt/2dos
# modprobe eepro00
# ifconfig eth0 192.168.1.10
# route add default gw 192.168.1.1
# ping 192.168.10.5
# nc 192.168.10.5 5555 | tar xf - 優(yōu)盤(pán)之家
如果這時(shí)使用format /s命令無(wú)法建立優(yōu)盤(pán)windows 98啟動(dòng)盤(pán),可以采用變通的方式,具體操作如下:
# mkdosfs -f 16 /dev/sda1
# xxd -c 16 /dev/sda1 | less
這時(shí)記錄下boot record的32~35字節(jié)內(nèi)容(本例為60 91 01 00,這4個(gè)字節(jié)記錄了fat分區(qū)總的扇區(qū)數(shù)量),再使用朗科隨盤(pán)提供的制作引導(dǎo)盤(pán)的工具制作windows 98啟動(dòng)盤(pán),然后使用linux下bvi或者能夠編輯二進(jìn)制文件的工具修改boot record的32~35字節(jié)為原來(lái)的內(nèi)容。這樣,就能夠?qū)崿F(xiàn)名副其實(shí)的三啟動(dòng)方式(windows雙啟動(dòng)+linux啟動(dòng))。
好了,制作linux系統(tǒng)啟動(dòng)u盤(pán)(linux系統(tǒng)u盤(pán)啟動(dòng)盤(pán)制作工具)的介紹到這里就結(jié)束了,想知道更多相關(guān)資料可以收藏我們的網(wǎng)站。