溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么制作Linux的U盤啟動(dòng)盤

發(fā)布時(shí)間:2021-07-10 16:01:43 來源:億速云 閱讀:297 作者:chen 欄目:系統(tǒng)運(yùn)維

這篇文章主要講解了“怎么制作Linux的U盤啟動(dòng)盤”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么制作Linux的U盤啟動(dòng)盤”吧!

USB閃存存儲裝置(優(yōu)盤)一般只有鑰匙扣大小,存儲容量多為32MB和64MB。由于具有輕巧精致、使用方便、便于攜帶等優(yōu)點(diǎn),特別是對比軟盤具有容量較大、安全可靠、讀取速度較快等特性,越來越多人使用這種裝置取代了軟驅(qū)與軟盤,在PC之間交換文件。目前新出的主板BIOS都支持USB軟盤和硬盤的啟動(dòng)方式,這樣對于Windows 98的系統(tǒng)維護(hù)與安裝工作越來越方便。但是,廠家僅提供制作Windows 98啟動(dòng)盤的制作工具,并不提供linux啟動(dòng)盤的制作工具。在優(yōu)盤上建立Linux啟動(dòng)盤,對于系統(tǒng)維護(hù)人員具有更加實(shí)用的意義,你可以使用Linux 建立小巧的內(nèi)核,建立網(wǎng)絡(luò)環(huán)境,快速地判斷和排除網(wǎng)絡(luò)故障與傳送文件。本文以Red Hat 8.0為例,使用朗科的雙啟動(dòng)型優(yōu)盤建立優(yōu)盤的Linux啟動(dòng)盤。

  下載相關(guān)軟件:e3,bvi,Liuux內(nèi)核。

編譯內(nèi)核

  首先計(jì)算機(jī)的主板必須要支持USB硬盤的啟動(dòng)方式,并且所使用的優(yōu)盤是啟動(dòng)型優(yōu)盤。

  我以Linux-2.4.20為例說明。編譯時(shí)一定要注意不要編譯不必要的模塊,如聲卡驅(qū)動(dòng)等驅(qū)動(dòng)模塊,使編譯的內(nèi)核盡可能小一些。由于要支持優(yōu)盤啟動(dòng),必須將SCSI設(shè)備、usbcore、usb-storage、Loopback device support、RAM disk support和initrd等編譯到內(nèi)核中。

  許多人會(huì)問,usb-storage模塊已經(jīng)包括在內(nèi)核了為什么還要建立 initrd.img文件?這是由于優(yōu)盤的初始化過程比執(zhí)行/sbin/init慢,導(dǎo)致內(nèi)核已經(jīng)啟動(dòng)完成了,優(yōu)盤還沒有完成初始化工作,因此根文件系統(tǒng)沒有加載,這時(shí)執(zhí)行/sbin/init命令肯定不成功。通過建立initrd.img文件,在啟動(dòng)內(nèi)核時(shí)加載initrd.img文件到內(nèi)存中,等待3 秒使優(yōu)盤完成初始化工作,再執(zhí)行/sbin/init指令。具體操作步驟如下。

1.建立initrd.img文件


  # 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 sleep
  # vi /mnt/initrd/linuxrc



  加入如下內(nèi)容:


  echo 'wait 3 seconds.....'
  /bin/sleep 3



  3.重新生成initrd.img文件

  由于缺省建立的initrd文件比較大(為4MB),為了加快優(yōu)盤的啟動(dòng),必須減小它。具體操作如下:


  # 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
  # umount /mnt/initrd
  # umount /mnt/initrdusb
  # cd /tmp
  # gzip -9 initrdusb
  # cp initrdusb.gz /boot/initrd-2.4.20-usb.img



  4.測試編譯的內(nèi)核是否正常啟動(dòng)

  測試編譯的內(nèi)核是否正常啟動(dòng),以及在啟動(dòng)過程中是否可看見優(yōu)盤的相關(guān)信息。

建立優(yōu)盤啟動(dòng)盤

  1.將優(yōu)盤分成兩個(gè)分區(qū)

  留給Linux分區(qū)容量大小完全取決于安裝哪些系統(tǒng)維護(hù)工具,結(jié)果如下:


  # modprobe usb-storage
  # fdisk -l /dev/sda
  Disk /dev/sda: 16 heads, 63 sectors, 126 cylinders
  Units = cylinders of 1008 * 512 bytes
  Device Boot Start End Blocks Id System
  /dev/sda1 1 102 51376+ 6 FAT16
  /dev/sda2 103 126 12096 83 Linux



  注意:如果需要使用優(yōu)盤引導(dǎo)Windows 98,扇區(qū)大小必須設(shè)置為63個(gè)扇區(qū),可以通過fdisk的x命令擴(kuò)展修改heads、sectors和cylinders參數(shù)。

  2.建立與生成ext2分區(qū)


  # mke2fs -m 0 /dev/sda2
  # mkdir -p /mnt/sda2
  # mount /dev/sda2 /mnt/sda2
  # cd /mnt/sda2



  3.建立boot目錄

  將編譯好的內(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目錄

  根據(jù)自工作的需要拷貝系統(tǒng)維護(hù)工具,如insmod、fsck和mkdosfs等實(shí)用程序。一定要注意使用ldd命令檢查那些共享庫文件,這些文件需要按照原來的路徑拷貝到lib目錄。 由于受到磁盤空間的限制,使用busybox命令代替一些常見的Linux命令,主要原因就是busybox 文件非常小,并且是靜態(tài)鏈接的,包括許多常見的Linux命令(如cat、init、ifconig、route)用ln -s busybox建立這些文件的符號聯(lián)接??梢愿鶕?jù)個(gè)人需要重新編譯busybox,包括vi等命令,也可以使用小巧的e3代替vi。

  另外,如果使用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



  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)容如下:


  /dev/sda2 / ext2 defaults 1 1
  none /proc proc defaults 0 0



應(yīng)用舉例

  舉一個(gè)傳送文件的例子。在一臺正常工作的Linux機(jī)器A(IP=192.168.100.5)上執(zhí)行:


  $ tar cf - win98 | nc -l -p 5555



  注意:可以在機(jī)器B上使用優(yōu)盤啟動(dòng)機(jī)器,telnet登陸到機(jī)器A上執(zhí)行以上命令。

  在機(jī)器B上使用優(yōu)盤啟動(dòng)執(zhí)行:


  # 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 -



  如果這時(shí)使用format /s命令無法建立優(yōu)盤Windows 98啟動(dòng)盤,可以采用變通的方式,具體操作如下:


  # 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ù)量),再使用朗科隨盤提供的制作引導(dǎo)盤的工具制作Windows 98啟動(dòng)盤,然后使用Linux下bvi或者能夠編輯二進(jìn)制文件的工具修改Boot Record的32~35字節(jié)為原來的內(nèi)容。這樣,就能夠?qū)崿F(xiàn)名副其實(shí)的三啟動(dòng)方式(Windows雙啟動(dòng)+Linux啟動(dòng))。'

感謝各位的閱讀,以上就是“怎么制作Linux的U盤啟動(dòng)盤”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么制作Linux的U盤啟動(dòng)盤這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI