1. 程式人生 > >在自制Linux盤上安裝GRUB

在自制Linux盤上安裝GRUB

     本人在一塊硬碟上攢出一個Linux系統盤,但沒有載入程式,因此該硬碟不能獨立啟動。為此希望將GRUB安裝到自制Linux系統的硬碟上。本人蔘照文[1]安裝GRUB,由於安裝環境和作者的不同,在安裝過程中出現了些問題。後來反覆閱讀和查詢資料,終於正確安裝GRUB,並在自制Linux盤中獨立啟動了Linux系統。現在將製作過程記錄如下:

第1步:先確定硬碟標識。

用命令fdisk檢視當前的所以硬碟情況。

[[email protected] root]# fdisk -l

Disk /dev/hda: 255 heads, 63 sectors, 1305 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1      1273  10225341   83  Linux
/dev/hda2          1274      1305    257040   82  Linux swap

Disk /dev/hdb: 16 heads, 63 sectors, 8322 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdb1   *         1      8322   4194256+  83  Linux

[
[email protected]
root]#

從上訴顯示中,確定我們需要安裝GRUB的硬碟標識為/dev/hdb。

第2步:安裝GRUB的配置。

本人蔘照文[1],在系統提示符下鍵入grub-install命令。
[[email protected] root]# grub-install /dev/hdb
/dev/hdb does not have any corresponding BIOS drive.
[[email protected] root]#
系統提示錯誤。

通過閱讀其它資料,發現需要指定grub安裝的根目錄。若未指定根目錄,則系統預設安裝在系統的根目錄下,即目錄"/"下,則grub將被安裝在目錄/boot/grub中。但目錄/boot/grub是在裝置/dev/hda上,而不是我們指定的裝置/dev/hdb。所以就產生了上述錯誤提示。

為了能正確安裝GRUB的配置,則需要將/dev/hdb掛接到系統的目錄中,使系統可以讀寫該裝置,同時通過grub-install的引數指定根目錄。具體操作如下:
[
[email protected]
root]# mkdir /mnt/boot
[[email protected] root]# mount /dev/hdb1 /mnt/boot
[[email protected] root]# grub-install --root-directory=/mnt /dev/hdb
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /mnt/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'.

(fd0)   /dev/fd0
(hd0)   /dev/hda
(hd1)   /dev/hdb

[
[email protected]
root]#

grub-install命令是將grub的配置安裝在指定根目錄的/boot/grub子目錄中。因為本人制作的Linux系統盤為/boot分割槽,所以將裝置/dev/hdb1掛接到目錄/mnt/boot上,而在grub-install中指定根目錄為目錄/mnt。

第3步:設定GRUB的/boot分割槽並寫入MBR

用gurb命令設定GRUB的/boot分割槽並寫入MBR。

[[email protected] root]# grub

    GRUB  version 0.92  (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> root (hd1,0)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd1)
 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 (hd1)"...  22 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd1) (hd1)1+22 p (hd1,0)/grub/stage2 /grub/grub
.conf"... succeeded
Done.

grub> quit

[[email protected] root]#

第4步:配置GRUB

現在剩下最後一步,編輯GRUB配置檔案。

[[email protected] root]# vi /mnt/boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,0)
#          kernel /boot/vmlinuz-version ro root=/dev/hda1
#          initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title linux
        root (hd0,0)
        kernel /vmlinuz ro root=/dev/ram0
        initrd /initrd.img

[[email protected] root]#

按上述配置編輯檔案grub.conf,並儲存。

注意:GRUB 0.92預設的配置檔名是grub.conf,而GRUB 0.97預設的配置檔名是menu.lst。
若使用的GRUB的版本為0.97,還需要執行以下命令:
[[email protected] root]# ln -fs grub.conf /mnt/boot/grub/menu.lst

按以上4步即完成了GRUB的安裝。用自制Linux盤啟動,出現了"login:"的提示。大功告成:))

參考文獻:
[1] "系統引導管理器GRUB,為初學者指南", http://www.linuxsir.org/main/?q=node/129

相關推薦

自制Linux安裝GRUB

     本人在一塊硬碟上攢出一個Linux系統盤,但沒有載入程式,因此該硬碟不能獨立啟動。為此希望將GRUB安裝到自制Linux系統的硬碟上。本人蔘照文[1]安裝GRUB,由於安裝環境和作者的不同,在安裝過程中出現了些問題。後來反覆閱讀和查詢資料,終於正確安裝GRUB,並在

在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

在UGRUB引導Linux

[前言]    今天有人問我,如何用U盤引導Linux,我就試了一下。把過程寫在這上面,備忘。   之後,就BOOT的問題繼續展開。  [準備]  U盤(愛國者,NEWMAN之類的FLASH盤都可以)  PC(BIOS一定要能夠支援從USB引導)  Linux作業系統(我

在U安裝debian linux

桌上型電腦最後還是掛了。雖然還沒徹底掛,啟動起來已經頗為麻煩,而且升級到3.0核心後把顯示器都給搞熄滅了。跑起來必須用筆記本上的xmanager才能遠端玩玩。 於是決定在筆記本上弄個真正的linux。畢竟筆記本記憶體不是很大,虛擬機器上搞,速度不爽。於是想在U盤上裝一個。

linux系統安裝java

ubuntu linux server export 文件夾 如何在ubuntu server上安裝java(jre或jdk),主要註意以下幾點:(在Centos,redhat上同樣適用)1.下載你想要的java版本壓縮包。  JRE下載:http://java.com/en/downlo

Linux docker安裝STF

range com toc -name sources pan .org phi 管理 需要解決問題:調研openstf/stf(https://github.com/openstf/stf),搭建docker(https://www.docker.com/)環境。 拆解為

Windows 7如何禁止在C安裝軟件?

禁止c盤安裝軟件Win7如何禁止在C盤上安裝軟件?大家都知道系統C盤是不能裝太多東西的,如果C盤爆滿,系統的運行速度就會非常慢。然而我們在Win7系統下安裝軟件時,系統默認的安裝目錄都是C盤,如果忘記選擇,就直接下載安裝到C盤了。面對這種問題,最好的辦法就是設置禁止在C盤上安裝軟件,那麽該如何操作呢?請看下文

如何在Linux系統安裝字體

lin 中文 imp mount 改字體 現在 black bre oot 如何在Linux系統上安裝字體 最後更新 2015年12月11日 分類 Linux 101 最新文章 標簽 font linux 字體 一般電腦用戶使用的字體大部分屬於TrueType字體,T

修復/boot及/etc/fstab、自制linux、編譯安裝內核

修復/boot、/etc/fstab、自制linux、編譯內核 修復/boot及/etc/fstab、自制linux、編譯安裝內核實驗一、破壞dev/sda 的MBR的446字節:破壞:dd if=/dev/zero of=/dev/sda bs=1 count=446 查看:hexdump -C -n

如何實現在虛擬機上的Linux系統安裝vmware tools

linux vmware tools如何實現在虛擬機上的Linux系統上安裝vmware tools工具作者:何揚 時間:2017年9月23日 上午8:29:16 【安裝目的】Linux下需要安裝VMware Tools工具來實現主機和虛擬機直接文件復制粘貼功能。【基本流程】1、首先,打開虛擬機,進入

Redis進階實踐之二如何在Linux系統安裝安裝Redis

進行 redis-cli windows 也會 www. 有關 目標 onf 名稱 原文:Redis進階實踐之二如何在Linux系統上安裝安裝Redis一、引言 上一篇文章寫了“如何安裝VMware Pro虛擬機”和在虛擬機上安裝Linux操作系統。那是第一步,有

Linux平臺安裝MySQL服務

table 校驗 運行 put statement procs 可靠 commands 系列 MySQL服務是一個真正的多線程、多用戶的SQL數據庫服務,憑借其高性能、高可靠和易於使用的特性,成為服務器領域中最受歡迎的開源數據庫系統。為了確保MySQL數據庫功能的完整性。可

Linux Centos7 安裝consul

get spa nod com releases sta span unzip uil 1、[root@localhost ~]# yum install -y unzip 2、[root@localhost ~]# yuminstall -y wget 3、[root

Linux(centos_7)安裝MySql5.7

使用wget從官網下載tar包 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 將MySql安裝至/usr/local/mysql目

Solr叢集搭建詳細教程(一) Linux伺服器安裝JDK小白教程

注:歡迎大家轉載,非商業用途請在醒目位置註明本文連結和作者名dijia478,商業用途請聯絡本人[email protected]。 一、Solr叢集的系統架構 SolrCloud(solr 雲)是Solr提供的分散式搜尋方案,當你需要大規模,容錯,分散式索引和檢索能力時使用 SolrCloud

在 Amazon Linux 或 Amazon Linux 2 安裝 SSM 代理

本文Copy 自 https://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/sysman-manual-agent-install.html 在 Amazon Linux 或 Amazon Linux 2 上安裝 SSM

redis3.2.1叢集介紹及在Linux作業系統安裝

一、redis叢集介紹點選開啟連結 Redis3.0版本之後支援Cluster. 二、redis叢集安裝 準備工作:       1. 安裝兩臺虛擬機器,模擬6個節點,一臺機器3個節點,創建出3 master、3 salve 環境。 &nbs

linux伺服器安裝jdk的兩種方法(yum+下載包)

這篇文章主要給大家介紹了關於在linux伺服器上安裝jdk的兩種方法,分別是利用yum安裝和從官網下載包安裝,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧 前言 對於開發者來說,安裝jdk按理說是非常簡單的事,

LInux/ubuntu安裝特定版本的 Pytorch ,例如 0.3.1版本

指令 conda install pytorch=0.3.1 torchvision cuda90 -c pytorch 注意事項: 1   pytorch=0.3.1  (0.3.1 改為你要安裝的pytorch版本)  檢視pytorch版本號點我 2   cud

linux系統安裝微信(Ubuntu/Debian 微信安裝

1. 更新系統 1 2 $ sudo apt-get update $ sudo apt-get install git-core curl build-essential openssl libssl-dev  2