您尚未登录。

#1 2016-03-07 01:27:26

尹良灿
会员
注册时间: 2013-04-23
帖子: 178

关于 EFI 分区的问题

我实在弄不清楚到底需不需要这个分区了。

我安装的 Windows 和  Arch 双系统,这是我的磁盘的分区结构:

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         2050047   1000.0 MiB  2700  (这个的 label 是 "WINRE_DRV")
   2         2050048         2582527   260.0 MiB   EF00  EFI system partition
   3         2582528         2844671   128.0 MiB   0C01  Microsoft reserved partition
   4         2844672       275490815   130.0 GiB   0700  Basic data partition (Windows 的 C 盘)
   5       945625088       976773119   14.9 GiB    2700  (联想的恢复分区)
   6       275490816       527136767   120.0 GiB   8300  Linux filesystem (根目录)
   7       527136768       736851967   100.0 GiB   8300  Linux filesystem (home)
   8       736851968       945625087   99.6 GiB    0700  Microsoft basic data (普通的放数据的分区)

今天我调整了根目录所在分区(sda6)的大小,分了点空间给 Windows。我先在 Linux 下缩小了 sda6,再到 Windows 下扩大了 sd4 。前一步没有任何问题,能正常重启进入 Linux,可是后一步重启到 Linux 就有问题了,提示读不了 sda2(依然能启动 Windows)。
6c78a7aff76a518db4886913941fb25ac06752.jpg

我不太看得懂,是不是 sda2 损坏了?这时 Linux 只能进入 emergency 模式。

sda2 (就是 EFI 分区)我是挂载在 /boot/efi 下的:

UUID=B06B-30C2      	/boot/efi 	vfat     rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro	0 2

我尝试把这一行从 fstab 注释掉之后系统就能正常启动了!(不过照片里的错误还在)。

我已经记不清为什么把 EFI 分区挂载到 /boot/efi,应该是当时安装时跟着 wiki 做的。

问题来了,既然 sda2 损坏了,而不挂载它系统也能启动,我可不可以删掉它呢?会不会影响 Windows?(可是 sda2 现在损坏了 Windows 还是能启动,说明 Windows 不需要它?)。

我重新翻了 wiki 里的相关文章,实在理解不了 UEFI 分区和 GRUB (我现在系统是通过 GRUB 启动的)的关系。UEFI 跟 boot loader/boot manager 是什么关系?

按照 Multibooting_in_UEFI说的,

Since each OS or vendor can maintain its own files within the EFI System Partition without affecting the other, multi-booting using UEFI is just a matter of launching a different UEFI application corresponding to the particular OS's bootloader.

不同的系统把它们各自的 UEFI application 都安装到 efi 分区,然后 UEFI firmware 读取它们启动不同的系统。所以 GRUB 是一种 UEFI application,还是可以替代 UEFI 的东西?

离线

#2 2016-03-07 08:04:50

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,921
个人网站

Re: 关于 EFI 分区的问题

GRUB 是 UEFI application。
报错是因为 I/O 错误。
EFI 分区不能删,但是不需要挂载。不挂载的话,记得更新 grub 时挂一下。

离线

#3 2016-03-07 09:23:36

尹良灿
会员
注册时间: 2013-04-23
帖子: 178

Re: 关于 EFI 分区的问题

依云 说:

GRUB 是 UEFI application。
报错是因为 I/O 错误。
EFI 分区不能删,但是不需要挂载。不挂载的话,记得更新 grub 时挂一下。

感谢回答,差一点就冲动把它删除了。。。。。原来平时不用挂载的呀
I/O 错误是什么意思,是磁盘损坏了么?为什么我不挂载 sda2 才能正常启动系统?

离线

#4 2016-03-07 09:55:11

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,921
个人网站

Re: 关于 EFI 分区的问题

尹良灿 说:
依云 说:

GRUB 是 UEFI application。
报错是因为 I/O 错误。
EFI 分区不能删,但是不需要挂载。不挂载的话,记得更新 grub 时挂一下。

感谢回答,差一点就冲动把它删除了。。。。。原来平时不用挂载的呀
I/O 错误是什么意思,是磁盘损坏了么?为什么我不挂载 sda2 才能正常启动系统?

因为你让它挂又挂不上所以进不了系统吧。

你这个 I/O 错误有可能是坏道之类的(因为它只在 sda2 上出现)。

离线

#5 2016-03-07 10:01:31

尹良灿
会员
注册时间: 2013-04-23
帖子: 178

Re: 关于 EFI 分区的问题

依云 说:

因为你让它挂又挂不上所以进不了系统吧。

你这个 I/O 错误有可能是坏道之类的(因为它只在 sda2 上出现)。

刚在 Windows 下用磁盘精灵检测,EFI 分区开头的 sector 有问题:
9b8da006f00c73f81d0bdd5bc531f20f13cd00.png

(Linux 下说 2050048 是 sector,不是扇区的意思么,上面却叫它 LBA(查了一下是 Logical Block Adressing),而扇区号是 1

最近编辑记录 尹良灿 (2016-03-07 10:04:30)

离线

#6 2016-03-07 10:59:27

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,921
个人网站

Re: 关于 EFI 分区的问题

尹良灿 说:

刚在 Windows 下用磁盘精灵检测,EFI 分区开头的 sector 有问题:
http://dimg.vim-cn.com/9c/9b8da006f00c7 … 13cd00.png

(Linux 下说 2050048 是 sector,不是扇区的意思么,上面却叫它 LBA(查了一下是 Logical Block Adressing),而扇区号是 1

是扇区啊。柱面、磁头、扇区,三个值算在一起就是 LBA 了。挺复杂并且原始的。

离线

页脚