【轉自】http://blog.sina.com.cn/s/blog_4fb009a90100c7ze.html
利用syslinux製作Dos、WinPE、Slax Linux整合的口袋作業系統
一、概述
隨身碟的價格越來越便宜,容量也越來越大,攜帶也方便,在工作中可以把一些自己常用的工具整和到裡面,在電腦維護方面使用比較方便。
二、系統的選擇
1、dos系統
目前在dos工具盤比較多,常見有MS-DOS 7.1,深山紅葉DOS工具盤、MaxDos、矮人dos工具盤、超普DOS工具盤等,在製作中可以根據自己喜歡,選擇相應的dos系統工具盤,我選擇的MaxDos 7.1,裡面有許多有用的工具,比如ghost 、pq、windows密碼破解等。
2、WinPE系統
網上提供WinPE系統基本都是修改至老毛桃的WinPE,主要有老九WinPE 老毛桃修改之撒手不管版、深山紅葉WINPE工具箱、、金手指快速裝機隨身碟版、通用PE工具箱、完美者隨身碟WinPE維護系統、晨楓隨身碟維護等,為了使整合時修改最少,這裡選擇晨楓隨身碟維護版。
3、Windows 故障修復主控台
Windows 故障修復主控台的功能是協助基於 Windows 的電腦在未正確啟動或根本無法啟動時進行恢複操作。這裡選擇網上的光碟片上啟動並執行基於Ramdisk的修復主控台。
4、Linux
隨身碟上的Linux比較多,比如Damn Small Linux、Slax Linux、puppy linux、Ubuntu等選擇體積比較小的,功能比較完備的,這裡選擇Slax。
5、口袋作業系統
主要有ceedo、mojopac和PortableApps Suite,根據自己的愛好去選擇,我從使用習慣和功能上在這裡選了ceedo。
三、u盤啟動引導程式的選擇
任何一個作業系統在任何一個硬體平台上運行都需要一個引導的過程,起著初始化軟體環境、把核心從儲存介質放到記憶體當中去,並開始啟動並執行作用。引導程式上承 BIOS,下接核心的初始化代碼,雖然開一次機只運行一次後就不留痕迹了,但相當的重要。
可對u 盤引導的引導程式主要有IO、NTLDR、syslinux、Grub等,她們各有特點,從相容性考慮,我選擇了syslinux。syslinux是專門用來引導可移動介質的輕量級引導程式,支援initrd功能,initrd = init ramdisk,就是在啟動時使用的一個記憶體虛擬磁碟,提高了對廣泛的硬體支援性。
四、軟體清單與說明
1、syslinux-3.73
Syslinux系統檔案,可以到下面地址下載:
http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.73.zip
相關安裝教程:
http://syslinux.zytor.com/wiki/index.php/SYSLINUX
2、HP優盤格式化工具
HP優盤格式化工具是用來對u盤進行格式化的工具,也可以直接進行做io的啟動u盤。可以到下面地址下載:
http://www.xdowns.com/soft/6/7/2007/Soft_35477.html
3、GDParam
GDParam這個工具可以方便得擷取 PC 虛擬啟動當中所需要的磁碟鏡像檔案的c/h/s 參數。在用syslinux啟動dos的磁碟鏡像時需要指定c/h/s 參數。可以到下面地址下載:
http://www.05sun.com/downinfo/5089.html
4、WinImage
用來建立和修改磁碟鏡像的軟體,你可以自己建立或者修改dos的磁碟鏡像。可以到下面地址下載:
http://www.crsky.com/soft/281.html
5、UltraISO
UltraISO軟碟通是一款光碟片映像ISO檔案編輯製作工具,它可以圖形化地從光碟片、硬碟製作和編輯ISO檔案。可以對下載得到的winpe或者slax光碟片映像進行修改。可以到下面地址下載:
http://www.crsky.com/soft/1134.html
6、WinHex
Winhex是在Windows下啟動並執行十六進位編輯軟體,在對winpe進行安裝檔案修改等方面需要的工具。可以到下面地址下載:
http://www.orsoon.com/Soft/4921.html
7、XCAB
XCAB能調用系統的makecab.exe檔案,把檔案加或目錄壓縮為CAB,特別支援為 XCMD DEVI 產生 CAB,在對winpe進行修改打包時用到。可以到下面地址下載:
http://bbs.wuyou.net/attachment.php?aid=14397
8、WimTool
WimTool可以對Wim格式檔案進行進行操作處理,在修改winpe的外置程式包時必須用的。可以到下面地址下載:
http://www.newasp.net/soft/app/26726.html
9、MaxDOS 7.1 整合 GHOST 11.5 PQ、DM、光碟片啟動版
電信下載 http://pzz.cn/soft/MaxDOS_71plus_iso.rar
網通下載 http://c.pzz.cn/soft/MaxDOS_71plus_iso.rar
10、Windows 故障修復主控台
http://www.xdowns.com/soft/6/boot/2006/soft_32527.html
11、晨楓隨身碟維護V2.0_512M版
http://www.rayfile.com/zh-cn/files/5731196e-e314-11dd-85f0-0019d11a795f/
12、slax 6.0.9
ftp://ftp.slax.org/SLAX-6.x/slax-6.0.9.iso
13、Loadbin
http://download.gna.org/grubutil/makerom-0.1-bin-w32-2008-01-01.zip
14、ceedo
http://www.myfiles.com.cn/soft/5/5224.htm
五、安裝 SYSLINUX
1、把u盤格式化,採用fat32格式。你可以用windows或者HP優盤格式化工具進行。
2、在u盤的根建立boot檔案夾,在boot下建立syslinux子檔案夾
3、把下載得到的syslinux-3.73.zip解壓縮到syslinux-3.73檔案夾,在其中的win32下有syslinux.exe檔案。拷貝syslinux.exe到你u盤的/boot/syslinux檔案夾下
4、開啟命令列,切換到u盤根目錄,進入/boot/syslinux檔案夾,執行syslinux.exe,假設你的u盤的盤符為j:
在命令列下依次運行下列命令:
C:\Documents and Settings\xxxxx> J:
J:\>Cd boot/syslinux
J:\boot\syslinux> syslinux.exe -ma -d /boot/syslinux j:
其中 -d /boot/syslinux是把命令產生的啟動系統檔案ldlinux.sys放到/boot/syslinux目錄,可以從該目錄尋找syslinux.cfg設定檔。
六、配置啟動菜單
拷貝syslinux系統檔案
啟動菜單的配置都在syslinux.cfg檔案中。需要幾個syslinux檔案:
memdisk 引導IMG鏡像的檔案
vesamenu.c32 二種視窗模組之一
menu.c32 二種視窗模組之一
chain.c32 指定分區啟動 如:chain.c32 hd0,1 (或chain.c32 hd1,1)
reboot.c32 重新啟動電腦
在解壓縮的syslinux-3.73檔案夾中搜尋以上就幾個檔案依次拷貝到u盤的/boot/syslinux檔案夾下。
七、dos系統的配置
1、在u盤的根建立dos檔案夾
2、製作dos映像檔案
(1)從網上下載得到的MaxDOS_71plus_iso.rar解壓縮得到maxdos_71plus_iso.iso檔案
(2)用UltraISO開啟maxdos_71plus_iso.iso提取出光碟片映像maxdos檔案夾下的maxs.sys檔案。
(3)把maxs.sys改名為maxs.gz,用winrar開啟把其中的maxdos.exe解出。
(4)然後把maxdos.exe 改名為maxdos.img
(5)你自己可用WinImage進行對maxdos.img檔案進行簡單的修改,加入你自己的doas應用程式。
(6)把修改後的MaxDOS.img複製到u盤的dos檔案夾下。
3、取得img檔案的CHS參數
syslinux支援gzip或zip壓縮格式的磁碟映像,但memdisk自身不能壓縮,memdisk支援標準floppy鏡像直接啟動,非標準(容量大於2880K的)要附加CHS參數。我們可以用GDParam取得img檔案的CHS參數。記下c/h/s=555/2/18
4、修改SYSLINUX.CFG
開啟u盤/boot/syslinux下的SYSLINUX.CFG檔案,在裡面添加形如下的內容:
LABEL MaxDOS
MENU LABEL Max DOS V7.1
kernel /boot/syslinux/memdisk c=555 h=2 s=18 floppy
append initrd=/dos/MaxDOS.img
八、slax系統的配置
1、把下載得到的slax-6.0.9.iso用UltraISO開啟,完全提取出來放在slax-6.0.9檔案夾下。
2、把其中的slax檔案夾包含子檔案複製到u盤的根目錄。
3、把slax-6.0.9/boot檔案夾下的linuz、initrd.gz兩檔案拷貝到u盤的boot檔案下。
4、開啟slax-6.0.9/boot檔案夾中的slax.cfg檔案,複製其中的:
LABEL xconf
MENU LABEL Slax Graphics mode (KDE)
kernel /boot/vmlinuz
append initrd=/boot/initrdch.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit~4 changes=/slax/ locale=CHS.UTF-8
5、把複製的上面內容貼人u盤/boot/syslinux下的SYSLINUX.CFG檔案
九、winpe的配置
1、解壓縮下載得到的晨楓隨身碟維護V2.0_512M版.rar到任意一檔案夾。
2、在u盤根建立winpe檔案夾。
3、修改winpe OEM資訊
解壓縮得到的MyFeng/Boot下的WinPE.is_改為WinPE.cab,用winrar開啟解壓出WinPE.iso,用UltraISO開啟,提取出\WXPE\SYSTEM32下的oeminfo.ini和OEMLOGO.bmp進行修改,匯入替換掉就可以了,保持iso檔案,把新得到的iso檔案用xcab軟體重新進行打包,得到WinPE.cab,再把WinPE.cab改為WinPE.is_ 。
4、修改winpe外置程式包
解壓縮解壓縮得到的MyFeng/Boot下的OP.WIM用WimTool解開,然後你可以替換案頭背景圖片,加入或者刪除一些程式,然後再用WimTool打包成OP.WIM
5、把處理完的OP.WIM、WinPE.is_檔案拷貝到u盤的winpe檔案夾。
6、開啟MyFeng/Boot下的winpe.ini修改其中的關於OP.WIM位置的代碼,你也可以修改其他的連結。修改如下。
MOUN %CurDrv%\winpe\OP.WIM,Y:\外置程式,1
儲存,然後拷貝到u盤的boot檔案夾下。
7、拷貝MyFeng/Boot下的ldrxpe、fon.bin、ntd.com到u盤的boot檔案夾下。
8、用記事本修改MyFeng/Boot下的xpsi檔案中的WinPE.IS_路徑為:
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=winpe\WinPE.IS_"
保持,然後拷貝到u盤的boot檔案夾下。
9、解壓縮下載得到的loadbin-0.1-bin-w32-2008-03-01.zip,把其中的ldntldr.bin改名為ldntldr,然後拷貝到u盤的boot檔案夾下。
10、開啟u 盤boot/syslinux下的SYSLINUX.CFG檔案,在其中加入下面內容:
LABEL WinPE
MENU LABEL Lite Win PE
kernel /boot/ldntldr
append initrd=/boot/ldrxpe
十、Windows 故障修復主控台
1、在u盤根建立comcns檔案夾
2、解壓縮下載得到的base_ramdisk.rar檔案到base_ramdisk檔案夾
3、用UltraISO開啟base_ramdisk下的光碟片上啟動並執行基於Ramdisk的修復主控台.iso檔案,把其根目錄下的CMDCONS.IS_、WINNT.SIF,提取出來,再把其i386下的SETUPLDR.BIN也提取出來。
4、拷貝CMDCONS.IS_到u盤的comcns檔案夾
5、用記事本開啟WINNT.SIF檔案,把其中修改為:
[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\i386\"
OsLoadOptions = "/noguiboot /fastdetect /rdexportascd /rdpath=comcns\cmdcons.is_"
然後儲存。
6、把修改後的WINNT.SIF檔案改名為cnsi,並複製到u 盤boot/下。
7、用WinHex開啟SETUPLDR.BIN
(1)尋找替換,把NTDETECT.COM替換為boot\ntd.com,共4處,替換前2處就可。
(2)尋找替換,WINNT.SIF替換為boot\cnsi。全部替換,共9處。
(3)儲存SETUPLDR.BIN檔案。
8、把SETUPLDR.BIN改名為ldrcmdcon,並複製到u 盤boot/下。
9、開啟u 盤boot/syslinux下的SYSLINUX.CFG檔案,在其中加入下面內容:
LABEL Cmdcons
MENU LABEL Cmd cons
kernel /boot/ldntldr
append initrd=/boot/ldrcmdcon
十一、安裝Ceedo
把下載得到的Ceedo安裝到你的u盤,然後進行配置。
十二、隨身碟的目錄結構和啟動設定檔
1、根目錄
|---boot----|--syslinux--| sysinux.cfg
|---dos
|---slax
|---comcns
|---winpe
|---Ceedo
|---My Documents
2、SYSLINUX.CFG檔案內容:
prompt 1
timeout 100
default vesamenu.c32
MENU BACKGROUND back.png
F1 readme.txt
F2 syslinux.cfg
MENU WIDTH 36
MENU MARGIN 0
MENU ROWS 8
MENU HELPMSGROW 14
MENU TIMEOUTROW 22
MENU TABMSGROW 24
MENU CMDLINEROW 24
MENU HSHIFT 40
MENU VSHIFT 2
menu color screen 37;40 #00000000 #00000000 none
menu color border 30;44 #00000000 #00000000 none
menu color title 1;36;44 #00000000 #00000000 none
menu color unsel 37;44 #ff60CA00 #00000000 none
menu color hotkey 1;37;44 #ff60CA00 #00000000 none
menu color sel 7;37;40 #ffffffff #ff60CA00 none
menu color hotsel 1;7;37;40 #ff808080 #ff60CA00 none
menu color scrollbar 30;44 #00000000 #00000000 none
menu color tabmsg 31;40 #aaaaaaaa #00000000 none
menu color cmdmark 1;36;40 #ffff0000 #00000000 none
menu color cmdline 37;40 #aaaaaaaa #00000000 none
menu color pwdborder 30;47 #ffff0000 #00000000 std
menu color pwdheader 31;47 #ffff0000 #00000000 std
menu color pwdentry 30;47 #ffff0000 #00000000 std
menu color timeout_msg 37;40 #aaaaaaaa #00000000 none
menu color timeout 1;37;40 #ffaaaaff #00000000 none
menu color help 37;40 #aaaaaa00 #00000000 none
menu color msg07 37;40 #90ffffff #00000000 std
MENU TITLE Jinjun's Tools Disk
LABEL MaxDOS
MENU LABEL Max DOS V7.1
kernel /boot/syslinux/memdisk c=555 h=2 s=18 floppy
append initrd=/dos/MaxDOS.img
TEXT HELP
More about currently selected:
Run Max DOS V7.1
ENDTEXT
LABEL WinPE
MENU LABEL Lite Win PE
kernel /boot/ldntldr
append initrd=/boot/ldrxpe
TEXT HELP
More about currently selected:
Run Lite Win PE.
ENDTEXT
LABEL xconf
MENU LABEL Slax Graphics mode (KDE)
kernel /boot/vmlinuz
append initrd=/boot/initrdch.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit~4 changes=/slax/ locale=CHS.UTF-8
TEXT HELP
More about currently selected:
Run Slax the best way we can.
ENDTEXT
LABEL Cmdcons
MENU LABEL Cmd cons
kernel /boot/ldntldr
append initrd=/boot/ldrcmdcon
TEXT HELP
More about currently selected:
Boot System of cmdcon.
ENDTEXT
LABEL boothd
MENU LABEL Boot System of HD1
kernel /boot/syslinux/chain.c32
append hd1
TEXT HELP
More about currently selected:
Boot System of HD1.
ENDTEXT
LABEL boothd
MENU LABEL Boot System of HD2
kernel /boot/syslinux/chain.c32
append hd2
TEXT HELP
More about currently selected:
Boot System of HD2.
ENDTEXT
LABEL reboot
MENU LABEL Reboot
kernel /boot/syslinux/reboot.c32
TEXT HELP
More about currently selected:
reboot.
ENDTEXT
十三、使用
在使用中你可以把啟動順序設定u-hdd方式優先。歡迎大家進行交流。