1. 程式人生 > >grub2各種手動命令引導教程

grub2各種手動命令引導教程

手動引導ubuntu的iso映象檔案從而安裝ubuntu,grub>代表命令的開始

假設ubuntu映象在U盤的第一個分割槽的根目錄下即:(hd0,1)/ubuntu-18.04-desktop-amd64.iso

手動引導下可以按TAB鍵補全命令、目錄以及檔名

#查詢所有已安裝磁碟並列印詳細資訊
grub>ls -l

 #設定根目錄分割槽
grub>set root=(hd0,1)

#將Ubuntu.iso位置賦值給變數isofile (這裡用變數方便下面不用打一長串檔名)
grub>set isofile=/ubuntu-18.04-desktop-amd64.iso

#使用grub2的回放技術,把ubuntu.iso的檔案內容,投射(掛載)到loop上。在使用這個命令時,你得考慮你的記憶體足夠的大。(hd0,1)iso映象檔案所在分割槽
grub>loopback loop (hd0,1)$isofile

#載入核心,其中(loop),是使用了上一句所投射的裝置,其訪問的是ubuntu.iso檔案的內容,boor=casper將目錄casper掛載為boot,iso-scan/filename=$isofile 是利用iso-scan來尋找到你的ubuntu.iso檔案所在位置並把所找到的iso檔案掛到光碟機裝置
grub>linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash

#initrid.lz是一個鏡象檔案,裡面存的是一些核心要載入的重要檔案
grub>initrd (loop)/casper/initrd.lz

#根據上面的引數啟動系統
grub>boot

-----------------------------------------------------------------------分割線-----------------------------------------------------------------------------------------

手動引導archlinux的iso映象檔案從而安裝archlinux,grub>代表命令的開始

假設archlinux映象在U盤的第一個分割槽的根目錄下即:(hd0,1)/archlinux-2018.07.01-x86_64.iso

grub>set root=(hd0,1)

grub>set isofile=/archlinux-2018.07.01-x86_64.iso

grub>loopback loop (hd0,1)$isofile

#img_dev=/dev/sda1 映象檔案所在分割槽裝置,如果不清楚所在裝置是怎麼排序的可以使用img_dev=/dev/disk/by-uuid/分割槽的UUID 關於UUID可以用"grub>ls -l" 指令查詢,或者可以用img_dev=/dev/disk/by-labe/分割槽卷標 
grub>linux (loop)/arch/boot/x86_64/vmlinuz img_dev=/dev/sda1 img_loop=$isofile earlymodules=loop

grub>initrd (loop)/arch/boot/x86_64/archiso.img

grub>boot

-----------------------------------------------------------------------分割線-----------------------------------------------------------------------------------------

手動引導Ubuntu

假設ubuntu安裝在第一塊硬碟的第一個分割槽即:(hd0,1)

grub>root=(hd0,1)
grub>linux /boot/vmlinuz-xxx
grub>initrd /boot/initrd.img-xxx
grub>boot

XXX是核心版本號

關於linux的通用引導方法其實與上面差不多,就是在“grub>linux /boot/vmlinuz-xxx”這一句載入核心的檔案與後面跟的引數有所不同,不同的linux發行版會有不同的引數,有些可以也不加引數啟動

-----------------------------------------------------------------------分割線-----------------------------------------------------------------------------------------

手動引導uefi啟動模式下的Windows。
winPE也可以用此方法引導

假設windows安裝在第一塊硬碟的第一個分割槽即:(hd0,1)

#載入ntfs檔案系統
grub>insmod ntfs
grub>set root=(hd0,1)
#grub>chainloader +1 是引導傳統bios啟動的Windows
#如果不成功則可能是efi檔案被替換用換個目錄試試如:chainloader/EFI/microsoft/boot/bootmgfw.efi
grub>chainloader /EFI/boot/bootx64.efi
grub>boot

-----------------------------------------------------------------------分割線-----------------------------------------------------------------------------------------

 手動引導bios啟動模式下的Windows。
winPE也可以用此方法引導

假設windows安裝在第一塊硬碟的第一個分割槽即:(hd0,1)

chainloader /bootmgr 命令會報簽名錯誤,即使關閉簽名驗證也無法啟動(chainloader +1也可啟動系統但不可啟動U盤pe)

grub>set root=(hd0,1)
# /bootmgr 是一個在根目錄下的引導檔案,bootmgr是在Windows Vista、Windows 7、windows 8/8.1和windows 10中使用的新的啟動管理器,就相當於Win NT/Win 2000/Win XP時代的NTLDR。
grub>ntldr /bootmgr
grub>boot