USB 闪存存储装置(优盘)一般只有钥匙扣大小,存储容量多为32MB和64MB。由于具有轻巧精致、使用方便、便于携带等优点,特别是对比软盘具有容量较大、安全可靠、读取速度较快等特性,越来越多人使用这种装置取代了软驱与软盘,在PC之间交换文件。目前新出的主板BIOS都支持USB软盘和硬盘的启动方式,这样对于Windows 98的系统维护与安装工作越来越方便。但是,厂家仅提供制作Windows 98启动盘的制作工具,并不提供linux启动盘的制作工具。在优盘上建立Linux启动盘,对于系统维护人员具有更加实用的意义,你可以使用Linux 建立小巧的内核,建立网络环境,快速地判断和排除网络故障与传送文件。本文以Red Hat 8.0为例,使用朗科的双启动型优盘建立优盘的Linux启动盘。

下载相关软件:e3,bvi,Liuux内核。

编译内核

首先计算机的主板必须要支持USB硬盘的启动方式,并且所使用的优盘是启动型优盘。

我以Linux-2.4.20为例说明。编译时一定要注意不要编译不必要的模块,如声卡驱动等驱动模块,使编译的内核尽可能小一些。由于要支持优盘启动,必须将SCSI设备、usbcore、usb-storage、Loopback device support、RAM disk support和initrd等编译到内核中。

许多人会问,usb-storage模块已经包括在内核了为什么还要建立 initrd.img文件?这是由于优盘的初始化过程比执行/sbin/init慢,导致内核已经启动完成了,优盘还没有完成初始化工作,因此根文件系统没有加载,这时执行/sbin/init命令肯定不成功。通过建立initrd.img文件,在启动内核时加载initrd.img文件到内存中,等待3 秒使优盘完成初始化工作,再执行/sbin/init指令。具体操作步骤如下。

1.建立initrd.img文件

# mkdir -p /mnt/initrd

# cd /tmp

# mkinitrd /tmp/initrd.gz 2.4.20-usb

2.解压initrd.img文件,修改启动脚本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

echo 'wait 3 seconds.....'

/bin/sleep 3

3.重新生成initrd.img文件

由于缺省建立的initrd文件比较大(为4MB),为了加快优盘的启动,必须减小它。具体操作如下:

# 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.测试编译的内核是否正常启动

测试编译的内核是否正常启动,以及在启动过程中是否可看见优盘的相关信息。

建立优盘启动盘

1.将优盘分成两个分区

留给Linux分区容量大小完全取决于安装哪些系统维护工具,结果如下:

# 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

注意:如果需要使用优盘引导Windows 98,扇区大小必须设置为63个扇区,可以通过fdisk的x命令扩展修改heads、sectors和cylinders参数。

2.建立与生成ext2分区

# mke2fs -m 0 /dev/sda2

# mkdir -p /mnt/sda2

# mount /dev/sda2 /mnt/sda2

# cd /mnt/sda2

将编译好的内核与initrd-2.4.20-usb.img文件拷贝到boot目录、编译好的模块拷贝到lib/modules目录,以及将/boot/grub的文件拷贝到boot目录,编辑boot/grub/menu.lst文件,内容如下:

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目录

根据自工作的需要拷贝系统维护工具,如insmod、fsck和mkdosfs等实用程序。一定要注意使用ldd命令检查那些共享库文件,这些文件需要按照原来的路径拷贝到lib目录。 由于受到磁盘空间的限制,使用busybox命令代替一些常见的Linux命令,主要原因就是busybox 文件非常小,并且是静态链接的,包括许多常见的Linux命令(如cat、init、ifconig、route)用ln -s busybox建立这些文件的符号联接。可以根据个人需要重新编译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命令拷贝常用的设备文件,包括console、tty1、tty2、tty3sda、sda1、sda2、hda、hdb和hda1等设备文件。

6.编辑etc/init.d/rcS

#!/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文件

内容如下:

/dev/sda2 / ext2 defaults 1 1

none /proc proc defaults 0 0

应用举例

举一个传送文件的例子。在一台正常工作的Linux机器A(IP=192.168.100.5)上执行:

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

注意:可以在机器B上使用优盘启动机器,telnet登陆到机器A上执行以上命令。

在机器B上使用优盘启动执行:

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

如果这时使用format /s命令无法建立优盘Windows 98启动盘,可以采用变通的方式,具体操作如下:

# mkdosfs -F 16 /dev/sda1

# xxd -c 16 /dev/sda1 | less

这时记录下Boot Record的32~35字节内容(本例为60 91 01 00,这4个字节记录了FAT分区总的扇区数量),再使用朗科随盘提供的制作引导盘的工具制作Windows 98启动盘,然后使用Linux下bvi或者能够编辑二进制文件的工具修改Boot Record的32~35字节为原来的内容。这样,就能够实现名副其实的三启动方式(Windows双启动+Linux启动)。

制作Linux的优盘(usb)启动盘:http://www.upan.cc/technology/use/2009/youpan_225.html

&nbsp

制作深度linux优盘,制作Linux的优盘(usb)启动盘相关推荐

  1. usb启动pe和Linux,打造自己的多功能USB启动盘——grub2引导WinPE、Archlinux安装镜像和Ubuntu liveCD...

    利用U盘制作启动盘,引导WinPE.Linux安装的文章多如牛毛,与他们相比本文的特点有: 1.用且仅用grbu2做引导.不使用grub4dos,不是使用msdos mbr转到活动分区,到ntldr, ...

  2. u盘装linux系统后恢复正常容量,【微笔记】制作Linux镜像的USB启动盘+优盘恢复容量...

    先唠家常吧,微魔在周六晚上打排球,小腿拉伤-连着躺了两天了(可怜)今天闲着,因为最近Ubuntu发布了14.04(又是个长期支持的版本),越是微魔就耐不住寂寞安装一下,替换掉了用了一年多的OpenSU ...

  3. linux initrd usb热插拔,linux技术之制作USB启动盘

    linux技术之制作USB启动盘 USB闪存存储装置(优盘)由于具有轻巧精致.使用方便.便于携带等优点,特别是对比软盘具有容量较大.安全可靠.读取速度较快等特性,越来越多人 使用这种装置取代了软驱与软 ...

  4. Linux 服务器(二)-linux安装方法之Centos安装介绍——Windows中制作USB启动盘 MacOS中制作USB启动盘

    Linux 服务器(二)-linux安装方法之Centos安装介绍--Windows中制作USB启动盘 & MacOS中制作USB启动盘 安装方法 Centos安装方法: 下载镜像 按需选择下 ...

  5. mac+usb安装linux系统安装,Mac OS X下制作安装Linux系统的USB启动盘

    帮同学把Linux安装到他们做的一个类似Mac mini大小(一个小盒子)的机器里面.这个其实就是一个pc,不过是基于atom的cpu.经过一 帮同学把Linux安装到他们做的一个类似Mac mini ...

  6. ultraiso制作u盘系统linux,ultraiso制作Linux USB启动盘的操作步骤

    大家熟悉使用ultraiso制作Linux USB启动盘的操作步骤吗?不清楚的朋友和小编一起看看吧. ultraiso制作Linux USB启动盘的操作步骤 首先下载软碟通这个软件UltraISO,网 ...

  7. 深度USB启动盘制作工具(用u盘装系统)

    深度USB启动维护盘制作工具 (制作USB启动盘,轻松安装和维护操作系统)  不需要专业技术,每一步操作都有提示,非常简单.  软件下载地址:  下载地址01  http://www.fileserv ...

  8. [USB 启动盘_1]-支持 BIOS/UEFI 启动的个人常用必备 PE 系统启动盘制作工具 —— 电脑店装机维护工具套装以及全网最详细的 U 盘启动方式详解

    ################################################## 目录 获取及使用 U 盘电脑店 PE 系统 为什么需要 PE 系统启动盘 两个官网链接? 解压使用 ...

  9. Linux 中创建 USB 启动盘来拯救 Windows 用户

    WoeUSB 可以在 Linux 中制作 Windows 启动盘,并帮助你的朋友解锁他们罢工的机器. 人们经常要求我帮助他们恢复被锁死或损坏的 Windows 电脑.有时,我可以使用 Linux US ...

  10. 制作ubuntu系统的 usb启动盘

    前言 由于课程的要求,要尝试完成 编译安装Linux系统的内核,但是在编译内核的过程中,Ubuntu的grub引导好像出了一些问题,不能进入系统了.所以就要制作一个usb启动盘,看能不能修复一下系统. ...

最新文章

  1. BZOJ1460: Pku2114 Boatherds
  2. AMD真龙一族网络社区成立
  3. 软件测试工具按用途分分为哪几类,以测试的形态分软件测试可以分为哪几类?...
  4. maven 程序包不存在_有人说 Maven 很简单,我却被“伤害”过
  5. ARM学习书单一提供打包下载地址
  6. Java中对接钉钉API获取数据流程
  7. 【Python基础】Python 流程控制专题总结
  8. appengine_在Google的AppEngine上升级到Java 7
  9. php版canvas,PHP实现将HTML5中Canvas图像保存到服务器
  10. IOC(控制反转)的理解
  11. python pitfall (陷阱)--不同平台os模块文件名排序
  12. 【协议】NVMe over RoCE 初探 SATA接口(AHCI协议)、PCIe 接口(NVMe 协议)
  13. 【c#技术】一篇文章搞掂:水晶报表
  14. jQuery LigerUI使用教程入门篇
  15. U²-Net:使用显著性物体检测来生成真实的铅笔肖像画
  16. 国标28181:什么是SIP协议
  17. JQuery之UI插件
  18. 简单的c#winform画图工具
  19. 猫眼5万条评论告诉你《飞驰人生》值不值得看?!
  20. 求函数依赖集F的最小覆盖

热门文章

  1. 骑士飞行棋 c语言代码,骑士飞行棋源代码.doc
  2. python安装 Autodesk FBX 包
  3. #displaytag:一个简易的Java分页插件(无需其他的前端分页插件) @FDDLC
  4. 定理在数学中的简写形式_高中数学联赛常用定理
  5. 2020Android手机专业摄影,这 7 款手机,就是 2020 上半年的拍照巅峰
  6. 求图形的周长和面积java_抽象类求图形周长和面积
  7. 【新手入门必看】MaixPy 图像基础知识
  8. 谷歌浏览器双击打不开pdf问题
  9. SpringBoot项目的云服务器部署
  10. Java之throw和throws的区别