为什么ubuntu不需要biosboot分区啊?

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
fatbird
帖子: 33
注册时间: 2012-05-14 11:46
系统: ubuntu fedora

为什么ubuntu不需要biosboot分区啊?

#1

帖子 fatbird » 2014-02-17 14:23

我的电脑是legacy bios+GPT的这种情况下不是需要一个单独的biosboot分区吗?安装其它的Linux系统都是需要的比如fedora,查了一下文档也是说这种legacy bios+GPT是需要一个biosboot分区的。为什么我在安装ubuntu时没有要求biosboot分区啊?
这样导致更新grub时提示不成功。修改grub后输入命令

代码: 全选

sudo update-grub  
          sudo grub-install /dev/sdb
grub-install 是就提示biosboot什么的 :em06
jtshs256
帖子: 22323
注册时间: 2010-07-19 21:41
系统: OS X

Re: 为什么ubuntu不需要biosboot分区啊?

#2

帖子 jtshs256 » 2014-02-17 14:36

那就是安装器不完善呗
知道就手动分一个咯
躺平
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 为什么ubuntu不需要biosboot分区啊?

#3

帖子 poloshiao » 2014-02-17 16:45

我的电脑是legacy bios+GPT的这种情况下不是需要一个单独的biosboot分区吗
從終端機
1. sudo parted -l print
2. sudo cat /etc/fstab
把結果直接複製 貼上來
不要摘要 以免遺漏一些重要資訊
fatbird
帖子: 33
注册时间: 2012-05-14 11:46
系统: ubuntu fedora

Re: 为什么ubuntu不需要biosboot分区啊?

#4

帖子 fatbird » 2014-02-17 20:30

代码: 全选

sudo parted -l print
显示的内容
Model: ATA WDC WD10EARS-00Y (scsi)
磁盘 /dev/sdb: 1000GB
Sector size (logical/physical): 512B/512B
分区表:gpt

数字 开始: End 大小 文件系统 Name 标志
1 1049kB 4096MB 4095MB linux-swap(v1)
2 4096MB 65.5GB 61.4GB ext4
3 65.5GB 130GB 64.4GB ext4 msftdata
4 130GB 1000GB 870GB ntfs Basic data partition msftdata

1为swap分区,2为ubuntu的/分区,3为fedora的/分区,4为分出来的NTFS分区

代码: 全选

sudo cat /etc/fstab
显示的内容为
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sdc2 during installation
UUID=1e15c517-8826-4088-9624-5de78be1a790 / ext4 errors=remount-ro 0 1
# swap was on /dev/sdc1 during installation
UUID=bc648f74-3b42-4644-9eaa-059a3b93276e none swap sw 0 0

代码: 全选

sudo grub-install /dev/sdb
显示内容为
/usr/sbin/grub-bios-setup: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
/usr/sbin/grub-bios-setup: warning: 无法嵌入。在此次安装中 GRUB 只能通过使用块列表安装。但是块列表是不可信赖的,不推荐使用。.
/usr/sbin/grub-bios-setup:错误: will not proceed with blocklists.
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 为什么ubuntu不需要biosboot分区啊?

#5

帖子 poloshiao » 2014-02-17 20:48

我的电脑是legacy bios+GPT
sudo parted -l print
磁盘 /dev/sdb: 1000GB
分区表:gpt
你有沒有 其它硬盤 ?
沒有看到 /dev/sda ?
有沒有 /dev/sdc, ... ?
fatbird
帖子: 33
注册时间: 2012-05-14 11:46
系统: ubuntu fedora

Re: 为什么ubuntu不需要biosboot分区啊?

#6

帖子 fatbird » 2014-02-17 21:07

主机硬盘是装的win7,linux(ubuntu和fedora)装在第二快外置硬盘上的用esata连接的。
我估计还是因为没有biosboot分区的问题,因为装fedora时就要求要biosboot分区1MB左右的大小,没有的话在legacy bios+GPT分区表的硬盘上就装不起。
重新再找了一块移动硬盘只装ubuntu使用legancy bios+GPT安装有建立biosboot分区选,不过不选也可以安装,不过在安装过程中发现一个显现ubuntu多了一个1mb的分区,但是安装完成ubuntu后就没有了,估计是不是ubuntu会自动建立一个biosboot分区,安装完成后自动就删除了。因为我查了一下grub的文档,文档里面说明legacy bios+GPT需要一个biosboot分区。
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 为什么ubuntu不需要biosboot分区啊?

#7

帖子 poloshiao » 2014-02-17 21:19


sudo parted -l print
全部內容 複製 貼上來

你要提供所有的硬盤分割區資訊 不要摘錄一部分 這樣可能會遺漏重要資訊
你提供的資訊越充分 獲得可行性建議的速度越快
fatbird
帖子: 33
注册时间: 2012-05-14 11:46
系统: ubuntu fedora

Re: 为什么ubuntu不需要biosboot分区啊?

#8

帖子 fatbird » 2014-02-17 22:51

sudo parted -l print
Model: ATA WDC WD5000BEVT-2 (scsi)
磁盘 /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
分区表:msdos

数字 开始: End 大小 类型 文件系统 标志
1 32.3kB 78.7GB 78.7GB primary ntfs 启动
2 78.7GB 500GB 421GB extended lba
5 78.7GB 215GB 136GB logical ntfs
6 215GB 356GB 142GB logical ntfs
7 356GB 500GB 144GB logical ntfs


Model: ATA WDC WD10EARS-00Y (scsi)
磁盘 /dev/sdb: 1000GB
Sector size (logical/physical): 512B/512B
分区表:gpt

数字 开始: End 大小 文件系统 Name 标志
1 1049kB 4096MB 4095MB linux-swap(v1)
2 4096MB 65.5GB 61.4GB ext4
3 65.5GB 130GB 64.4GB ext4 msftdata
4 130GB 1000GB 870GB ntfs Basic data partition msftdata

这是完整性息,sda是我电脑的硬盘装的win7。外置移动硬盘装的是linux,ubuntu+fedora双系统(sdb2为ubuntu,sdb3为fedora,sdb4为NTFS的为了在lunx和windows下都能使用,sdb1为ubuntu和fedora的共享swap分区)。我当时安装的思路是用外置移动硬盘作为一个移动系统,引导和grub都是安装在这个移动硬盘上也就是sdb上的,如果不连接外置硬盘,电脑的内置硬盘也就是sda不受影响的。
fatbird
帖子: 33
注册时间: 2012-05-14 11:46
系统: ubuntu fedora

Re: 为什么ubuntu不需要biosboot分区啊?

#9

帖子 fatbird » 2014-02-18 1:25

问题找到了,在legacy bios+GPT下必须需要一个biosboot分区不然是没办法在unbuntu下使用gurb-install /dev/sdx的。不过update-grub可以使用。
我在我另外一个装有fedora的移动硬盘上追加安装一个ubuntu做双系统就能使用grub-install /dev/sdx安装,因为fedora安装必须一个biosboot分区不然无法安装fedora。在我这块外置esata硬盘上追加划分一个1MB的biosboot分区,再试gurb-install /dev/sdx就没有问题了。
如图
123.png
不过我查了一下WiKi,legacy bios+GP安装linux的话,是要划分一个biosboot分区,但是不知到为什么ubuntu可以不用。先前我还以为是ubuntu可以自动划分一个biosboot分区,安装好以后就自动删除(fedora安装好后删除了biosboot分区后还能启动也没有影响使用)
ubuntu安装时有两个很小1mb左右的空闲分区我当时以为是自动建立的biosboot分区,看来因该不是,不知到这多出来的空闲分区是什么,为什么ubuntu不用biosboot分区,搞不懂。
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 为什么ubuntu不需要biosboot分区啊?

#10

帖子 poloshiao » 2014-02-18 8:16

因为fedora安装必须一个biosboot分区不然无法安装fedora
1. http://fedoraproject.org/wiki/GRUB_2
Starting with Fedora 16, GRUB 2 is the default bootloader on x86 BIOS systems.
Fedora 16 以後的版本 預裝 grub 2 爲開機引導程式
2. 既然 Ubuntu 也是預裝 Grub 2
所以 其安裝開機引導程式 grub 2 的祕訣 與 Fedora 應該也是大同小異的
以下討論 同時適用於 所有預裝 grub 2 的 Linux 發行版 包含 Ubuntu 及 Fedora (也許需要微調)
我的电脑是legacy bios
legacy bios
可以從 MBR (msdos) 硬盤開機 也可以從 GPT 硬盤 開機
sudo parted -l print
磁盘 /dev/sda: 500GB
分区表:msdos
如果開機 設定從 /dev/sda 爲最優先開機裝置
就不必額外分割一個 BIOS Boot Partition
當然 也可以 把 /boot 掛載在 /dev/sda 上面的一個單獨的分割區 (最好是 /dev/sda1 ext2)
注意 掛載在 單獨的分割區 的目錄是 /boot
這一種情況
sudo grub-install /dev/sda
才正確
sudo grub-install /dev/sdb
會出現錯誤訊息
參見
http://www.gnu.org/software/grub/manual ... stallation
MBR 章節
sudo parted -l print
磁盘 /dev/sdb: 1000GB
分区表:gpt
如果開機 設定從 /dev/sdb 爲最優先開機裝置
就必需在 /dev/sdb 額外分割一個 BIOS Boot Partition (最好是 /dev/sdb1 bios_grub 或 0xEF02 或 21686148-6449-6e6f-744e656564454649)
注意 掛載在 BIOS Boot Partition 的目錄必須是 /boot/xxxxx, (xxxxx 待補), 你可以讓掛載目錄 空白 讓安裝程式幫你決定 再到 /etc/fstab 看看 安裝程式幫你掛載在那個目錄
http://askubuntu.com/questions/132843/w ... tall-12-04
http://en.wikipedia.org/wiki/BIOS_Boot_partition
http://www.gnu.org/software/grub/manual ... stallation
GPT 章節
這一種情況
sudo grub-install /dev/sdb
才正確
sudo grub-install /dev/sda
會出現錯誤訊息

補充說明
0. MBR (Legacy) EFI, UEFI 開機韌體 差別在於 開機檔案 安裝在哪裏 其它差別不大
1. 如果 uefi enabled 情況 開機硬盤 一定要是 gpt
開機硬盤一定要分割一個 EFI System partition
http://en.wikipedia.org/wiki/EFI_System_partition
https://help.ubuntu.com/community/UEFI
這個 EFI System partition 可以好幾個 作業系統 共用
所以 安裝第二個以後的 作業系統時 要小心 不要選重新格式化 否則 會影響前面已安裝的作業系統開機
2. 安裝前 最好先使用 Ubuntu Live CD/DVD/USB 開機 登入試用桌面
使用 gparted 分割
https://help.ubuntu.com/community/GParted
https://help.ubuntu.com/community/HowtoPartition
安裝時 選擇 最後一項 something else
使用 手動指定 分割區 / 格式化 / 掛載
https://help.ubuntu.com/community/GraphicalInstall
Installation type
這樣 在多重開機的情況 才能完全掌握安裝到哪個分割區
一次就安裝成功的機會才比較大
3. sudo grub-install /dev/sdb

sudo grub-install /dev/sda
與你把 Ubuntu / 根目錄 掛載在 /dev/sdax 或 /dev/sdby
是沒關係的
跟你設定最優先開機硬盤 才有關係
4. 哪一顆硬盤爲 /dev/sda
哪一顆硬盤爲 /dev/sdb
並不是固定的 而是每次開機掃描結果來編定的
所以每次開機 爲了避免下錯指令到錯誤的硬盤
最好都使用
sudo parted -l print
確認
哪一顆硬盤爲 /dev/sda
哪一顆硬盤爲 /dev/sdb
fatbird
帖子: 33
注册时间: 2012-05-14 11:46
系统: ubuntu fedora

Re: 为什么ubuntu不需要biosboot分区啊?

#11

帖子 fatbird » 2014-02-18 14:37

感謝poloshiao,問題已經大致解決了,只是還有點小問題。 :em11
sudo parted -l print
磁盘 /dev/sdb: 1000GB
分区表:gpt
我的就是在第二块硬盘(GPT分区表)/dev/sdb 上设定的优先开机,按理说就需要額外分割一個 BIOS Boot Partition 。
GNU GRUB也是這樣說明的
參考的
http://www.gnu.org/software/grub/manual ... stallation
還參考了archwiki 說明biosboot 可以劃分在任意位置,只要在2TB之前.
參考
https://wiki.archlinux.org/index.php/GR ... structions

不過還有疑問就是ubuntu壓根就不需要額外劃分BIOS Boot Partition也可以安裝成功ubuntu系統,ubuntu是在/dev/sdb上也是設定的這個優先開機.只是如果要重新安裝grub2就不行,必須劃分一個BIOS Boot Partition 才能安裝上grub2 .
還有就是如果是安裝fedora 系統的話,它的BIOS Boot Partition必須在 /boot 之前,如/boot是sdb2的話,BIOS Boot Partition就要是sdb1如果BIOS Boot Partition為sdb3的話fedora就無法正常啟動,只有在開機選恢復模式才能啟動,感覺很奇怪。
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 为什么ubuntu不需要biosboot分区啊?

#12

帖子 poloshiao » 2014-02-18 18:34

按理说就需要額外分割一個 BIOS Boot Partition 。
如果你從 GPT 硬盤 開機 就一定需要 先手動分割 BIOS Boot Partition 再安裝
不要讓安裝程式自己分割/安裝
ubuntu壓根就不需要額外劃分BIOS Boot Partition也可以安裝成功ubuntu系統
不需要額外劃分BIOS Boot Partition也可以安裝成功ubuntu系統
表示 它不是從 gpt 硬盤 讀取開機檔案
注意
爲何說 最優先開機硬盤
表示 第一個硬盤開機失敗 就自動去找第二個硬盤開機 (非 gpt)

如果你有混淆
把 不是 GPT 分割那個 硬盤 暫時取下來
安裝試試
就可以證實了
BIOS Boot Partition必須在 /boot 之前,如/boot是sdb2的話,BIOS Boot Partition就要是sdb1如果BIOS Boot Partition為sdb3的話fedora就無法正常啟動
這句話 是把 開機/讀取開機檔案 與
開機成功 依照 /etc/fstab 掛載分割區
混爲一談了

GPT 硬盤開機 先到 BIOS Boot Partition 讀取開機檔案 辨識的方法 就是
bios_grub 或 0xEF02 或 21686148-6449-6e6f-744e656564454649) 分割區 標誌 (flag)
不是根據 /dev/sdnx 分割區代號 辨識
分割區 標誌 (flag) 在哪個分割區 都行 但是 建議放在 第一個分割區
如果同一臺電腦 安裝好幾個 作業系統 所有的 開機檔案 都共存 放在這裏
因爲 bios_grub 或 0xEF02 或 21686148-6449-6e6f-744e656564454649)
分割區 標誌 (flag) 同一個硬盤 不能有兩個

你可以 打開 gparted
看看 gpt 硬盤 有沒有 bios_grub 的分割區

如果是在 /etc/fstab 掛載分割區
第一行 最好是 /
第二行 最好是 /boot (如果 /boot 有掛載在獨立分割區)
第三行 最好是 /boot/grub_efi 或 /boot/grub_xxx (xxx 再補)
... 其它掛載
有一個原則 / 掛載好了 才能掛載 /boot 才能在掛載 /boot/grub_xxx

補充
前面有談過 /dev/sda /dev/sdb /dev/sdc 的 硬盤順序 不是固定的
/dev/sdax /dev/sdby /dev/sdcz 的分割區順序 不是固定的
所以開機程序與 /etc/fstab 都是以 UUID 爲準
fatbird
帖子: 33
注册时间: 2012-05-14 11:46
系统: ubuntu fedora

Re: 为什么ubuntu不需要biosboot分区啊?

#13

帖子 fatbird » 2014-02-23 10:49

重新安裝時,實驗了一下ubuntu不手動劃分一個biosboot分區也能在這種模式bios(legacy)+GPT下安裝,並且不需要biosboot分區也能啟動(只接這一塊安裝ubuntu系統的硬盤,沒接其它硬盤)。
fedora安裝時倒是必須要劃分一個biosboot分區,但是安裝完成後刪除biosboot分區也能啟動,不過要從恢復模式才能啟動到X。
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 为什么ubuntu不需要biosboot分区啊?

#14

帖子 poloshiao » 2014-02-23 14:00

重新安裝時,實驗了一下ubuntu不手動劃分一個biosboot分區也能在這種模式bios(legacy)+GPT下安裝,並且不需要biosboot分區也能啟動(只接這一塊安裝ubuntu系統的硬盤,沒接其它硬盤)。
在這樣的安裝情況下 從終端機
1. sudo fdisk -l
2. sudo parted -l print
3. sudo cat /etc/fstab
把兩者結果複製 貼上來

備註
佩服你的求證精神
fatbird
帖子: 33
注册时间: 2012-05-14 11:46
系统: ubuntu fedora

Re: 为什么ubuntu不需要biosboot分区啊?

#15

帖子 fatbird » 2014-02-26 22:04

代码: 全选

sudo fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = 扇区 of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xcbb755c7

设备 启动 起点 终点 块数 Id 系统
/dev/sda1 1 1953525167 976762583+ ee GPT

代码: 全选

sudo parted -l print
Model: ATA WDC WD10EARS-00Y (scsi)
磁盘 /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
分区表:gpt

数字 开始: End 大小 文件系统 Name 标志
2 2097kB 4098MB 4096MB linux-swap(v1)
3 4098MB 86.0GB 81.9GB ext4
4 86.0GB 172GB 85.9GB ext4 msftdata

代码: 全选

sudo cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sdb3 during installation
UUID=1bfa78e7-d572-49bf-9638-77dfb46c7683 / ext4 errors=remount-ro 0 1
# swap was on /dev/sdb2 during installation
UUID=ba0b21e3-3f3a-4aab-88db-319809e82234 none swap sw 0 0

还有就是gparted下显示的分区截图
123.png
回复