Ubuntu中利用Grub 2修復行動硬碟引導

2021-08-25 17:48:48 字數 1499 閱讀 1960

grub 2的安裝需要安裝以下包:

grub-pc, grub-common

可以在包管理工具中發現。

grub-install -v來檢視當前版本, 傳統的grub版本號為0.97及以下, grub2的版本號是1.96或更高。

grub 2的配置檔案是/boot/grub/grub.cfg, 但是這個檔案是不允許修改的,我們要通過對/etc/grub.d/下的檔案以及/etc/default/grub檔案進行編輯,使用update-grub來生成配置檔案。

也就是說, 乙個正常的流程應該是:

sudo apt-get installgrub-pc, grub-common #如果已經安裝了grub2則不需要

sudo grub-install --root-directory=/ /dev/sda #在裝置上安裝grub2引導

sudo update-grub #生成grub配置檔案

現在的問題就在update-grub,因為grub-install是可以指定裝置來進行安裝的, 但是生成配置檔案的update-grub是不能指定的。

whereis update-grub

#!/bin/sh set -e exec grub-mkconfig -o /boot/grub/grub.cfg "$@"

那我們就繼續來檢視grub-mkconfig的**(下面僅擷取前面的關鍵目錄定義部分)

prefix=/usr exec_prefix=$ sbindir=$/sbin libdir=$/lib sysconfdir=/etc package_name=grub package_version=1.98+20100804-5ubuntu3 host_os=linux-gnu datarootdir=$/share datadir=$ pkgdatadir=$/`echo grub | sed "$"` grub_cfg="" grub_mkconfig_dir=$/grub.d

可以看出在這裡它定義了路徑,其中sysconfdir指定了系統配置檔案路徑,經過簡單核對後面**,它就是使用這個目錄下的grub.d/*和default/grub來生成配置檔案的。。。

那麼,我們就可以對sysconfdir進行乙個修改, 讓它指向要修復的行動硬碟的etc目錄下,然後執行

sudo grub-mkconfig -o /自定義路徑/grub.cfg

這樣就會在「/自定義路徑/」下生成了grub.cfg

當然,此時還是有問題的, 因為現在查詢到的系統是將目前作業系統所在硬碟作為主硬碟掃瞄的,所以,對grub.cfg中作業系統設定的部分進行乙個照貓畫虎的修改就可以了,修改這部分主要關注的是系統核心版本和裝置

ls -l /dev/disk/by-uuid #檢視所有裝置的uuid

ls -l /boot #檢視可用核心

好了,到此,將這個修改後的grub.cfg移動到「/boot/grub/」, 重啟以目標硬碟引導。。

我的到這裡就成功了....忽忽,關於/etc/grub.d/*和/etc/default/grub的配置,本文沒有提到,可以參閱

Ubuntu中利用Grub 2修復行動硬碟引導

grub 2的安裝需要安裝以下包 grub pc,grub common 可以在包管理工具中發現。grub install v來檢視當前版本,傳統的grub版本號為0.97及以下,grub2的版本號是1.96或更高。grub 2的配置檔案是 boot grub grub.cfg,但是這個檔案是不允許...

Ubuntu中利用Grub 2修復行動硬碟引導

grub 2的安裝需要安裝以下包 grub pc,grub common 可以在包管理工具中發現。grub install v來檢視當前版本,傳統的grub版本號為0.97及以下,grub2的版本號是1.96或更高。grub 2的配置檔案是 boot grub grub.cfg,但是這個檔案是不允許...

Grub2 在優盤中安裝Grub2

下面介紹linux下將優盤。安裝mbr有兩種方式,一種是安裝到磁碟,即mbr,一種是安裝到分割槽,也就成了pbr。mbr會被bios識別,pbr要通過mbr來引導進入。首先使用fdisk查詢到對應分割槽,例如 dev sdb2 mount dev sdb2 mnt grub2 install roo...