linux windows啟動問題

2022-09-07 02:09:18 字數 3460 閱讀 3249

在win7下裝的centos雙系統,後來把win7下安裝雙系統時用的磁碟刪掉了,致使啟動錯誤,只能直接進入到grub中

通過上上次的日誌,可以知道如何進入windwos環境下。

但是如何進入linux下。則如下所示:

root (hd0, tab鍵檢視linux所在的分割槽。我的是第5分割槽

root (hd0,5)

檢視/grub/grub.conf檔案。

拷貝其中的kernel命令和initrd命令即可。

***********************最終解決問題的方法*************************

/*

引言 grub是什麼?最常態的理解,grub是乙個bootloader或者是乙個bootmanager,通過grub可以引導種類豐富的系統,如linux、freebsd、windows等。但一旦進入linux作業系統(如無特殊宣告,以下提及作業系統或系統皆為linux作業系統),可以敲乙個grub命令,就進入」grub>」提示狀態,然後可以進入操作若干命令。這時候的grub是什麼?是shell,是乙個和bash類似的乙個shell。並且提供了兩種工作模式,互動(interactive)模式和非互動(batch)兩種模式,grub-install命令正是利用了grub的非互動模式,在系統下直接完成了grub的安裝。

*/三種安裝方式 安裝grub其實有3種方式,最常用的是grub-install,其實還有兩種grub>install和grub>setup,其中grub>install是最底層的方式,grub>setup是更高一層的方式,而grub-install是最高端最簡單的方式。接下來我們從grub>install開始講,來對3個不同的方式作一下區分:

install: install [--stage2=stage2_file] [--force-lba] stage1 [d] device stage2 [addr] [p] [config_file] [real_config_file]其中,stage1 device stage2是必不可少的,以下為示例:

install (hd0,

0)/grub/stage1 (hd0) (hd0,0)/grub/stage2

或者可以如下:

root (hd0,

0) (在我的電腦上是 root (hd0,5))

install /grub/stage1 (hd0) /grub/stage2

通過這樣一種方式可以成功安裝grub,但系統reboot之後,不能進入系統,卻直接進入grub>.why?因為這種安裝方式沒有告知grub去**找grub.conf,stage2找不到grub.conf就會進入grub>.

用以下形式安裝就ok了。

root (hd0,

0)install /grub/stage1 (hd0) /grub/stage2 p /grub/

grub.conf

setup: setup [--prefix=dir] [--stage2=stage2_file] [--force-lba] install_device [image_device]

set up the installation of grub automatically. this command uses

the more flexible command

"install"in

the backend and installs

grub into the device install_device.

從以上內容我們可以看出,setup是乙個自動化(automatically)的grub安裝,它在後台(backend)執行了更靈活多變的install命令。看示例:

grub> root (hd0,0

) filesystem type

is ext2fs, partition type 0x83

grub>setup (hd0)

checking if"

/boot/grub/stage1

"exists... no

checking if"

/grub/stage1

"exists... yes

checking if"

/grub/stage2

"exists... yes

checking if"

/grub/e2fs_stage1_5

"exists... yes

running

"embed /grub/e2fs_stage1_5 (hd0)

"... 16

sectors are embedded.

succeeded

running

"install /grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/grub/stage2 /grub/grub.conf

"... succeeded done.

從以上可以看出,setup命令將install命令封裝了,使用setup命令比使用install命令簡單很多。

但實際的過程比install卻要複雜一些,其中尤其重要的一點是:

使用setup會植入e2fs_stage1_5到硬碟的第一柱面第16扇區之後(這個沒有準確驗證過),這會帶來和通過install安裝乙個很大的區別。

2.3. grub-install 安裝grub最常用的方式是在進入系統之後,通過grub-install指令碼進行安裝,通過這個指令碼安裝和前兩種方式有何不同呢?

指令碼其實是通過grub的非互動模式,呼叫了setup命令安裝grub的。

[*]指令碼的安裝源是/usr/share/grub/i386-redhat/下的stage1、2和各種stage1.5,

而前兩種方式使用的源是/boot/grub/下的相同內容。所以通過grub-instal安裝grub,原先在/boot/grub下的stage檔案都刪除也沒關係,該指令碼每次執行都會刪除這些檔案的。反之,通過前兩種方式安裝的話,相應的stage檔案是不可或缺的,否則會報錯,安裝失敗。

[*]通過grub-install安裝grub之後,如果我們刪除了/boot/grub/下的stage2檔案,系統會無法啟動,報如下錯:

grub loading stage 1.5

grub loading, please wait...

error

15但是,如果是通過grub>install方式安裝的grub,刪除/boot/grub/stage2就沒有問題,why?

因為通過grub>install安裝grub,stage1是直接通過stage2所在的blocklist找stage2,我們刪除或者改名stage2檔案,檔案的存放位置是不變的,因此能找到。

而通過grub-install指令碼,或者grub>setup,會智慧型的找到相應的stage1.5,例如:/grub/e2fs_stage1_5,然後通過stage1.5認識檔案系統,是通過檔名去找stage2的,所以通過這兩種方式安裝的grub,不可刪除或者改名/boot/grub/stage2。

Linux Windows 雙啟動 Grub 修復

出處 linux windows 雙啟動 grub 修復 重新安裝 windows 後,linux的啟動選項會丟失,可以通過如下方式找回.如果grub也丟失,應先安裝grub,可以安裝wingrub,比較方便.1 在windows 下安裝wingrub 2 重啟到純dos,不要是vm方式 3 typ...

oracle em 啟動問題

一 em 常用命令 emca repos create 建立乙個 em資料庫 emca repos recreate 重建乙個 em資料庫 emca repos drop 刪除乙個 em資料庫 emca config dbcontrol db 配置資料庫的 database control emca...

oracle啟動問題

正常情況下您的oracle服務是可以自己啟動的,如果您的oracle不知道因為什麼突然之間不可以啟動了,你可以考慮以下情況。1.你的電腦ip位址發生了改變,比如你的電腦ip位址是自動分配的,因為oracle的啟動繫結的是自己的ip位址,所以如果你的ip位址發生了變化,那麼你的資料庫肯定是無法啟動的。...