一、使用fdisk命令對u盤進行分區
1、fdisk -l 查看那個設備時u盤 (現在以/dev/sdc為例)
2、fdisk /dev/sdc 對u盤分區 p:查看當前分區 d:刪除當前分區 n:新建分區 w:保存
二、使用mkfs 將u盤格式化為fat32格式,fat32 通用性比較好
mkfs.vfat -F 32 /dev/sdc1 或者 mkfs -t vfat /dev/sdc1
三、將grub2安裝到u盤
1、sudo grub-install --boot-directory=/media/u /dev/sdc 問題:--boot-dircetory 和 --root-dircetory 的區別 或:grub-install --no-floppy --boot-directory=/mnt/img /dev/sdc
2、 sudo update-grub
3、sudo grub-mkconfig -o /media/u/boot/grub/grub.cfg
以上代碼中的/dev/sdc是U盤對應設備,/media/u是U盤的掛載點。
經過上面的操作,grub2被安裝到u盤的mbr上了,生成了默認的啟動菜單/grub/grub.cfg,通過u盤啟動就能看到grub2的引導界面了,完全可以引導電腦硬盤上的操作系統了。
四、使用grub命令行啟動系統 啟動linux系統(本文的grub指的全部是grub2)
1、set root=(hd1,msdos1) (hd1,msdos1)是啟動分區。 (在輸到"("之后,按一下tab,我的能自動填充hd1,之后,再按一下tab鍵,可以顯示出磁盤分區,在我的電腦上顯示出了2個ext分區,以及這些分區的基本信息,我的安裝在hd1,msdos1)
2、linux /boot/vmlinux-xxx-xxx root=UUID=xxxxxxxxx 或者 linux /boot/vmlinuz-***** -generic root=UUID=****** (root=后可以使用uuid也可使用 /dev/sda1 掛載分區,但是 本人個人暫時無法獲取是sda1還是sdb1,所以用UUID,第一步tab補全顯示磁盤分區詳情時會顯示分區的uuid號)
3、initrd /boot/initdxxx(按tab補全)
4、boot 啟動
五、grub可以直接啟動grub4dos
1、下載grub4dos工具到u盤(http://grub4dos.chenall.net/categories/downloads/)
2、配置 grub.cfg
menuentry "Grub4dos"{
set root='hd0,msdos1'
linux16 /grub/grub4dos/grub.exe
boot
}
六、grub啟動winpe
1、消災鏡像文件到u盤
2、配置grub.cfg
menuentry 'winpe'{
set root='hd0,msdos1'
insmod lvm
insmod xfs
insmod memdisk
insmod part_msdos
echo 'loading memdisk...'
linux16 /grub/memdisk iso raw
echo 'loading iso...'
initrd16 /grub/dabaicai.iso
}
七、grub4dos啟動winpe(grub啟動winpe有時候會失敗所以使用grub4dos啟動)
修改grub4dos下的menu.lst文件(menu.lst文件最好拷貝到根目錄或者boot目錄,要不然系統可能找不到)
title find and boot dabaicai.ISO
fallback 6
root (hd0,0) (系統默認是在當前磁盤,如果iso和grub4dos在同一個磁盤分區可以不用寫這一句)
find --set-root /grub/dabaicai.iso
map /grub/dabaicai.iso (0xff) || map --mem /grub/dabaicai.iso (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2
命令解釋
set: 設置環境變量,如果不帶參數,則是顯示當前所有的環境變量。
linux: 從文件中加載Linux內核image。該行的其余內容則直接作為內核的命令傳遞,在使用了這個命令之后必須使用initrd命令。
intird: 為Linux內核image加載初始的ramdisk,並在內存中的Linux安裝區域中設置適當的參數,這只能在linux命令后使用。
boot: 引導已經加載的操作系統或鏈式加載程序。
chainloader: 作為一個鏈式加載程序來加載一個文件,如我在前文所述,當我用此命令加載了一個windows的efi文件之后,便能順利地引導win10系統的啟動了。