CentOS5及6上安裝Grub
如何重新安裝開機管理程式(GRUB)
一、光碟重新安裝開機管理程式(GRUB)
請執行下列步驟:
- 用 CentOS 安裝碟片開機(例如首張 CD 或 DVD)。
-
CentOS-4 或 CentOS-5 請在 boot: 提示輸入linux rescue。CentOS-6 請從開機選單選擇 Rescue installed system。
- 以讀寫模式掛載所有檔案系統。
-
chroot 到你硬碟內的真正根目錄('/')。
# chroot /mnt/sysimage
- 重新安裝開機管理程式(GRUB)。
-
若果你要在 SCSI 硬碟或 SATA 硬碟的 MBR(/dev/sda)重新安裝 GRUB:
# grub-install /dev/sda
-
若果你要在 SCSI 硬碟或 SATA 硬碟的第二個分割槽內的 PBR(/dev/sda2)重新安裝 GRUB:
# grub-install /dev/sda2
-
若果你要在 IDE 硬碟的 MBR(/dev/hda)重新安裝 GRUB:
# grub-install /dev/hda
-
若果你要在 HP Smart Array 磁碟陣列的 MBR(/dev/c0d0)重新安裝 GRUB:
# grub-install /dev/cciss/c0d0
-
二、CentOS 5 及 6 上安裝 GRUB
此檔案解釋如何在 CentOS 5 或 6 上安裝或重灌 Grub 開機程式。如果你的開機程式曾被毀壞或破壞 —— 譬如安裝了不相容的作業系統 —— 你必須重新安裝 Grub 開機程式。
安裝 Grub 涉及三個步驟:
-
建立 /boot/grub/grub.conf 配置檔案。
-
在 /boot/grub 安裝 Grub 檔案。
-
安裝 Grub 開機程式。
第二及第三步可以通過 grub-install 單一個指令來完成。 另外,第二步亦可通過 grub 這個指令來完成。
1. Grub 慣用名稱
Grub 按以下方式為碟盤及分割槽命名:
- 不論碟盤是 IDE(PATA)、SATA 或 SCSI 碟盤,也不論它們的普遍稱謂是 {{hd}} 或 {{sd}},所有碟盤一律稱為 {{hd}}。
- 所有碟盤及分割槽一律以 0 而不是 1 開始編號。
- 不論碟盤上有多少個主分割槽,擴充套件分割槽一律以 4 開始編號。
- 第一個數字代表碟盤;第二個數字(存在的話)代表分割槽。
樣例:
Grub 稱謂 |
意思 |
普遍稱謂 |
(hd0) |
第一個碟盤 |
/dev/sda(或 /dev/hda) |
(hd1) |
第二個碟盤 |
/dev/sdb(或 /dev/hdb) |
(hd0,0) |
第一個碟盤,第一個分割槽 |
/dev/sda1(或 /dev/hda1) |
(hd1,0) |
第二個碟盤,第一個分割槽 |
/dev/sdb1(或 /dev/hdb1) |
(hd1,1) |
第二個碟盤,第二個分割槽 |
/dev/sdb2(或 /dev/hdb2) |
2. 建立或編輯 /boot/grub/grub.conf 配置檔案
首先,你應該建立或編輯 /boot/grub/grub.conf 這個配置檔案。要是你的碟盤未曾安裝 Grub 開機程式,你應該先建立配置檔案,然後才安裝開機程式。
在某些發行版本下,配置檔名為 /boot/grub/menu.lst。在 CentOS 下,/boot/grub/menu.lst 是條連結,它指向正式配置檔案/boot/grub/grub.conf。
此檔案含有以下資訊:
-
預設的開機分割槽。
-
等候多久才自動引導預設的分割槽。
-
選擇性地提供一個開機劃面,在等候使用者輸入時顯示出來。
-
可供使用者選擇的各個開機分割槽。
樣例:
(請勿輸入行首的數字。它們索引樣例檔後的解釋。)
1 default=0 2 timeout=10 3 splashimage=(hd0,5)/boot/grub/splash.xpm.gz 4 title CentOS 5.6 i686 5 root (hd0,5) 6 kernel /boot/vmlinuz-2.6.18-238.19.1.el5.centos.plusPAE ro root=/dev/sda6 rhgb noquiet 7 initrd /boot/initrd-2.6.18-238.19.1.el5.centos.plusPAE.img 8 title Linux Mint 11 9 root (hd0,9) 10 kernel /boot/vmlinuz-2.6.32-26-generic-pae ro root=/dev/sda10 11 initrd /boot/initrd.img-2.6.32-26-generic-pae
假若你把 /boot 放在獨立的分割槽內,請參閱以下的備註。 |
解釋:
1. 預設引導清單內的首個分割槽。請注意 Grub 的編號以 0 開始,而不是 1。
2. 停頓 10 秒等候使用者輸入,然後引導預設分割槽。
3. 等候使用者輸入時顯示開機劃面(選擇性的)。
4. 第一個可用的開機分割槽。在此樣例中,它是預設的分割槽(見行 1)。
5. 按 Grub 的命名方式指定主分割槽。
6. 此行包含以下 5 部份:
kernel /boot/vmlinuz-2.6.18-238.19.1.el5.centos.plusPAE
以慣用的命名方式指出核心(vmlinuz)的位置。
ro
首先以 ro(只讀)方式掛載分割槽,以便在有需要時執行 fsck。
root=/dev/sda6
以慣用的命名方式指出主分割槽的位置。你也可通過檔案系統的 UUID(通用唯一標識碼)來指定主分割槽,例如:root=UUID=134d2a24-2699-4b0c-823b-1e13633f3b07。CentOS 現在預設採用 UUID。你可以利用這個指命來找出一個檔案系統的 UUID:tune2fs -l /dev/sda6。
rhgb
採用影象式開機(Red Hat 影象式開機)。需要文字模式開機時可刪除。
noquiet
輸出詳細資訊。刪除後可減低詳細度。
7. 以慣用的命名方式指出初始化 ramdisk initrd 或 initramfs 的位置。
8. 第二個可用的開機分割槽。
9. 按 Grub 的命名方式指定主分割槽。
10. 此行包含以下 3 部份:
kernel /boot/vmlinuz-2.6.32-26-generic-pae
以慣用的命名方式指出核心(vmlinuz)的位置。
ro
首先以 ro(只讀)方式掛載分割槽,以便在有需要時執行 fsck。
root=/dev/sda10
以慣用的命名方式指出主分割槽的位置。另外請參閱第 6 項有關 UUID 的備註。
11. 以慣用的命名方式指出初始化 ramdisk initrd 或 initramfs 的位置。
3. 利用 grub-install 安裝 Grub
當可行時,安裝 Grub 的最簡易方法是利用 grub-install 這個指令。
此指令將會:
-
在現有分割槽的 /boot/grub 內安裝所需檔案。
-
在通過傳統命名方式所指定的位置安裝開機程式。
樣例:
指令 |
含意 |
grub-install /dev/sda |
在現有分割槽的 /boot/grub 目錄內安裝 Grub 的檔案。在首個碟盤的主引導記錄(MBR)內安裝開機程式。這是安裝 Grub 的推薦方式。 |
grub-install /dev/sda1 |
在現有分割槽的 /boot/grub 目錄內安裝 Grub 的檔案。在首個碟盤的第一個分割槽內安裝開機程式。 |
grub-install /dev/sda2 |
在現有分割槽的 /boot/grub 目錄內安裝 Grub 的檔案。在首個碟盤的第二個分割槽內安裝開機程式。 |
[[email protected] ~]# grub-install /dev/sda Installation finished. No error reported. This is the contents of the device map /boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. # this device map was generated by anaconda (hd0) /dev/sda [[email protected] ~]#
4. 替換方法:單單利用 grub 安裝開機程式
你也可利用 grub 這個指令來安裝開機程式,它卻不會在 /boot/grub 內安裝 Grub 的檔案。要是開機程式被蓋過或損壞了,此方法可修復 Grub 的安裝。
-
執行 grub。
-
你可選擇執行 find /boot/grub/stage1 尋找哪個分割槽在/boot/grub 內含有 Grub 所需的檔案。如果你的/boot 採用獨立分割槽,請執行find /grub/stage1。
-
執行 root [按 Grub 方式命名的分割槽] 來指定哪個分割槽的 /boot/grub 內含有 Grub 檔案及備有 /boot/grub/grub.conf。
-
利用 setup [按 Grub 方式命名的開機程式位置] 來安裝開機程式。
-
執行 quit 來離開 Grub 程式。
樣例:
[[email protected] ~]# grub Probing devices to guess BIOS drives. This may take a long time. GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename.] grub> find /boot/grub/stage1 (hd0,5) (hd0,9) grub> root (hd0,5) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,5)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded Done. grub> quit
5. 備註及警告
5.1. 以獨立分割槽存放 /boot
要是你的 /boot 放在獨立的分割槽內,/boot/grub/grub.conf 內以 root、kernel 及 initrd 起首的行必須有下列改動:
-
以 root 起首的那一行必須指定 /boot 的分割槽,而不是/ 的分割槽。
-
以 kernel 起首的那一行必須假設核心(vmlinuz)位於/,而不是/boot。然而,該行中root 指令必須指定/ 的分割槽,而不是/boot 的分割槽。
-
以 initrd 起首的那一行必須假設初始化 ramdisk(initrd 或initramfs)位於/,而不是/boot。
樣例:
/boot 的分割槽是 /dev/sda1,或 hd(0,0)。/ 的分割槽是 /dev/sda2,或 hd(0,1)。/boot/grub/grub.conf 檔須含有下列設定:
title CentOS 5.6 i686 root (hd0,0) kernel /vmlinuz-2.6.18-238.19.1.el5.centos.plusPAE ro root=/dev/sda2 initrd /initrd-2.6.18-238.19.1.el5.centos.plusPAE.img
5.2. Grub 及 ext4fs
CentOS 5 的 Grub 並不相容 ext4fs。更準確來說,它不能讀入 ext4fs 預設採用的256-byte inodes。
可行的解決方法有兩個:
- 採用 CentOS 6 的 Grub,它能正確地支援 ext4fs。
-
利用 mkfs.ext4 -I 128 這個指令建立一個擁有 128-byte inodes 的 ext4 檔案系統。這卻意味某些 ext4fs 功能將不可使用。
5.3. 在開機程式運用 Grub 的命令列
你可在開機程式內直接輸入 Grub 的指令。在開機選單按 c,然後輸入那些出現在/boot/grub/grub.conf 配置檔案內的 Grub 指令。
當配置檔案出錯時,這個功能很有用。
樣例:
grub> find /boot/grub/stage1 (hd0,5) grub> root (hd0,5) grub> kernel /boot/vmlinuz-2.6.18-238.19.1.el5.centos.plusPAE ro root=/dev/sda6 grub> initrd /boot/initrd-2.6.18-238.19.1.el5.centos.plusPAE.img grub> boot
你也可以通過 e 這個指令在 Grub 開機程式內編輯 /boot/grub/grub.conf 內的某行。舉個例說,要令 Linux 以單一使用者模式(runlevel 1)引導,編輯含有kernel 的那一行並在行末加入1。按著按b 來引導它。
5.4. 利用 Grub 來引導 Windows 分割槽
要使用 Grub 來引導一個 Windows 分割槽,請在 /boot/grub/grub.conf 加入類似以下的內容:
樣例:
title Windows rootnoverify (hd0,0) makeactive chainloader +1參看官方網站:
相關推薦
CentOS5及6上安裝Grub
如何重新安裝開機管理程式(GRUB) 一、光碟重新安裝開機管理程式(GRUB) 請執行下列步驟: 用 CentOS 安裝碟片開機(例如首張 CD 或 DVD)。 CentOS-4 或 CentOS-5 請在 boot: 提示輸入linux rescue。CentOS-
在CentOS 6上安裝Apache和PHP
lis col conf -a 主機 依賴 cache 5.6 正常 本文演示如何在CentOS 6上安裝Apache和PHP。CentOS 6自帶的是Apache 2.2.3和PHP 5.1.6,您可以使用默認的CentOS包管理器進行安裝yum。使用yum(而不是使用源
什麽是EPEL 及 Centos上安裝EPEL(轉)
pyc TP repos -- i386 性能 centos6 pycurl 問題 什麽是EPEL 及 Centos上安裝EPEL 轉自:http://www.unxmail.com/read.php?67RHEL以及他的衍生發行版如CentOS、Scientific Li
centos 6 上安裝jdk1.8 為指定使用者配置jdk版本
** centos 6 上安裝jdk1.8 為指定使用者配置jdk版本 ** 自己在jdk官網下載jdk1.8的版本,傳到伺服器或者直接在伺服器上進行下載 一般的下載目錄是usr/local/java 下載完成後 進行解壓 或者jdk1.8資料夾 vim /etc/profile
python 3.7極速入門教程1安裝:Linux(Ubuntu 18.04)及Windows上安裝Anaconda
安裝 Linux安裝 Anaconda是最受歡迎的python資料科學和機器學習平臺,用於大規模資料處理,預測分析和科學計算。Anaconda發行版附帶了1,000多個數據包,conda命令列工具和Anaconda Navigator的桌面圖形使用者介面。一般而言,使用Anaconda比直接
RHEL 6 上安裝 yum 以及 epel源的使用方法
這幾天在虛擬機器上安裝了 rhel 6.3 ,準確版本資訊是: [[email protected] ~]# uname -a Linux Chaos 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2
在Linux CentOS 6.6上安裝Python 2.7.9
CentOS 6.6自帶的是Python 2.6.6,而編譯llvm需要Python 2.7以上。 checking for python... /usr/bin/python checking for python >= 2.7... not found configure: error:
MacOS High Sierra 10.13.6上安裝LeanCloud命令列工具CLI
簡介 根據本人分析(供參考),LeanCloud和mbmod是時下國內非常流行的兩家雲API供應商,其主要市場瞄準移動開發。有關細節在此不贅述,有興趣的朋友可以參考官方網站有關資料。本文介紹在MacOS High Sierra 10.13.6上安裝LeanCloud命令列工具CLI的注意事項。 命令列
在自制Linux盤上安裝GRUB
本人在一塊硬碟上攢出一個Linux系統盤,但沒有載入程式,因此該硬碟不能獨立啟動。為此希望將GRUB安裝到自制Linux系統的硬碟上。本人蔘照文[1]安裝GRUB,由於安裝環境和作者的不同,在安裝過程中出現了些問題。後來反覆閱讀和查詢資料,終於正確安裝GRUB,並在
mysql在linux及windows上安裝及遠端連線
1、mysql 在linux端安裝 yum list installed mysql* # 檢視有沒有安裝過 yum -y install mysql-server # 伺服器端 yum -y install mysql-devel # 伺服器端 yum -y in
Fedora Core 6 上安裝 beast (3)
覺得 pound + lighttpd 太麻煩嗎?又翻到一個應該不錯的選擇,是一個俄國人寫的 http server, 也具有 reverse proxy 和load balancing 的能力。godfat ~ 3.2$ port info nginxnginx 0.5.2
什麼是EPEL 及 Centos上安裝EPEL
RHEL以及他的衍生髮行版如CentOS、Scientific Linux為了穩定,官方的rpm repository提供的rpm包往往是很滯後的,當然了,這樣做這是無可厚非的,畢竟這是伺服器版本,安全穩定是重點,官方的rpm repository提供的rpm包也不夠豐
在redhat 6.6上安裝Docker
安裝環境 支援Docker的RHEL版本 Red Hat Enterprise Linux 7 (64-bit) Red Hat Enterprise Linux 6.5 (64-bit) 或更高版本 不論是RHEL的哪個版本,Docker都要求是6
在U盤上安裝grub
Disk /dev/sdb: 2096 MB, 2096898048 bytes 64 heads, 63 sectors/track, 1015 cylinders Units = cylinders of 4032 * 512 = 2064384 bytes Sector size (logical/ph
OpenVas在centos 6上安裝過程
OpenVAS for CentOS via Atomic Step 1: Configure Atomicorp Repository (as user root, only once) wget -q -O - http://www.atomicorp.com/inst
Centos 7上安裝及配置MySQL 5.6.26
1、解除安裝系統自帶Mariadb Centos7 已經不自帶MySQL,自帶內部集成了Mariadb,而安裝MySQL的話會和Mariadb的檔案衝突,所以需要先解除安裝掉Mariadb,再安裝MySQL。 [[email protected] ~]
Redhat6.3上安裝配置mysql5.6.13版本配置埠及自定義資料檔案目錄問題
記錄一下自己在Redhat6.3上安裝配置mysql遇到的種種問題 首先下載檔案不用說了,網上鍊接很多 我用的的5.6.13 一共是三個檔案 MySQL-client-5.6.13-1.el6.x86_64.rpm MySQL-devel-5.6.13-1.el6.x8
如何在CentOS 6.x/7.x上安裝git及最新版
原始碼包安裝 步驟1. 安裝依賴包 # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel # yum install gcc perl-ExtUtils-MakeMaker
Centos7上安裝 elasticsearch-6.2.2及相關外掛
原文地址 elasticsearch是一個開源的搜尋伺服器,提供了一個分散式多使用者能力的全文搜尋引擎,下面是我的安裝筆記 準備工作 java版本 jdk版本必須是1.8及1.8以上 [[email protected] ~]# java -version java version "1.
Centos7上安裝 elasticsearch-6.2.2及相關插件
als 測試 內存大小 server 安裝和使用 earch sport ava map 原文地址 elasticsearch是一個開源的搜索服務器,提供了一個分布式多用戶能力的全文搜索引擎,下面是我的安裝筆記 準備工作 java版本 jdk版本必須是1.8及1.8以上 [