初装 Ubuntu 23.10.1 Desktop 的几个问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
DOSforever
帖子: 13
注册时间: 2012-10-06 12:24

初装 Ubuntu 23.10.1 Desktop 的几个问题

#1

帖子 DOSforever » 2024-03-21 2:00

安装时给用户的选项很少。
分区时我选手动,只分了两个最基本的分区 /boot 和 / ,但分区工具会自动给我加上一个 1M 左右大小的 bios boot 分区。
device for boot loader installation sda2.png
我一直对这个类型的分区很有兴趣,不知他的作用是什么。我在安装 Rocky Linux 的时候无论是让分区工具自动分区还是我手动分区都不会自动给我分出这个 bios boot 区,即便是我手动分出这个区似乎也没起什么作用。既然 Ubuntu 是自动(强制)给我分出这个区想必一定是对启动必须的。而且一旦有了这个区,分区工具会自动设该硬盘为 device for boot loader installation ,我的理解也就是自动安装 GRUB2 到该硬盘,也就是无论你怎么分区 Ubuntu 都会强制安装 GRUB2 ,因为 /boot 区是必须要分的,有了 /boot 就必然会自动产生 bios boot 区,有了 bios boot 区就必然会自动安装 GRUB2 。不知

问题1:我另一个帖子里 https://forum.ubuntu.com.cn/viewtopic.p ... 3#p3235712 有人说的“最后一步可以选择不安装grub2或者安装到指定位置”该怎么选?

分区时没有地方让你选是采用 MBR 类型还是 GPT 类型,安装完后看似乎是 GPT 类型的,那么
问题2:我如果要按 MBR 类型分怎么分?
问题3:而且,难道这个 bios boot 区只在 GPT 类型的分区上才有效?在 MBR 类型的分区上无效?也不需要?
问题4:如果要在安装时分区分出 LVM 分区的怎么办?似乎找不到选项。

最后,假如我想重新安装,即便设为光盘先启动,但似乎启动不了,或就算是光盘启动了也是先查找硬盘上有没有安装了 Ubuntu 系统,假如检测到安装了的话仍然还是从硬盘启动,总之就是无法再次从光盘启动重新安装。
onlylove
论坛版主
帖子: 5232
注册时间: 2007-01-14 16:23

Re: 初装 Ubuntu 23.10.1 Desktop 的几个问题

#2

帖子 onlylove » 2024-03-21 2:15

grub2那个事……可能是老黄历了,不好意思……因为之前老版本确实有,新版本没怎么从头装过(等下重新装下新版本的desktop研究下看看

至于那个1M大小的分区,如果是在硬盘最开始,我只能说,我知道一点,但是不一定有关,就是好像是硬盘头上的1MB,是怎么回事来着,反正就是为了保证兼容性还是啥的(也许等下会有人来骂我乱讲),反正印象里,微软是这么干的来着

https://superuser.com/questions/1483928 ... -partition
onlylove
论坛版主
帖子: 5232
注册时间: 2007-01-14 16:23

Re: 初装 Ubuntu 23.10.1 Desktop 的几个问题

#3

帖子 onlylove » 2024-03-21 2:42

VirtualBox_ubuntu_21_03_2024_02_39_26.png
这个是你要的lvm
onlylove
论坛版主
帖子: 5232
注册时间: 2007-01-14 16:23

Re: 初装 Ubuntu 23.10.1 Desktop 的几个问题

#4

帖子 onlylove » 2024-03-21 3:59

算了,grub那个……锅我背了,之前一直有一个text installer的(altenative cd),我也习惯用那个装系统,后来ubuntu把那个弄没了一直没注意(应该说,ubuntu是我接触linux以来,变化最大的系统)不知道现在的pxe intall啥样了

至于图形安装方式,如果你选择手动分区,分区下面可以选择bootloader的安装位置,这个好像必须要选一个
ubuntu_21_03_2024_03_53_57.png
如果你实在不想装grub,去隔壁arch linux那边看看,至少我上次装arch的时候还需要手动生成grub配置来着(也挺早了)

最后,你那个不能从光盘启动虚拟机的问题,麻烦去找vmware,或者你重启虚拟机的时候,显示vmware logo的时候,按一下esc(或者奇数下,偶数下会弹出又取消,总之弹出boot device选择),然后选择启动设备是光盘就可以了,总之我认为是vmware的问题,因为我用vbox,系统装好了以后从光盘启动虚拟机没问题
头像
astolia
论坛版主
帖子: 6452
注册时间: 2008-09-18 13:11

Re: 初装 Ubuntu 23.10.1 Desktop 的几个问题

#5

帖子 astolia » 2024-03-21 12:10

DOSforever 写了: 2024-03-21 2:00 分区时没有地方让你选是采用 MBR 类型还是 GPT 类型,安装完后看似乎是 GPT 类型的
是的,现在即使是传统bios/mbr启动模式下,也默认给你创建一个gpt分区表
DOSforever 写了: 2024-03-21 2:00 我一直对这个类型的分区很有兴趣,不知他的作用是什么。
这个bios boot分区就是grub开发者为了能让在gpt分区表在传统bios/mbr启动模式下正常运作而搞出来的东西
DOSforever 写了: 2024-03-21 2:00 问题3:而且,难道这个 bios boot 区只在 GPT 类型的分区上才有效?在 MBR 类型的分区上无效?也不需要?
是的。因为在gpt分区上,作为兼容而存在的mbr后面直接就是gpt分区的数据结构,没有预留的空间,所以需要额外划分一个分区出来放grub的引导代码。而现代的分区工具在划分mbr分区时会自动预留足够空间,自然不需要这种技巧。
DOSforever 写了: 2024-03-21 2:00 问题2:我如果要按 MBR 类型分怎么分?
在分区那步之前,运行gparted或者开终端运行fdisk,在硬盘上创建msdos类型的分区表即可
DOSforever
帖子: 13
注册时间: 2012-10-06 12:24

Re: 初装 Ubuntu 23.10.1 Desktop 的几个问题

#6

帖子 DOSforever » 2024-03-21 19:59

onlylove 写了: 2024-03-21 3:59 如果你实在不想装grub,去隔壁arch linux那边看看,至少我上次装arch的时候还需要手动生成grub配置来着(也挺早了)
倒也不是不想装 GRUB ,而是 GRUB 不能由我控制装在什么地方,我记得我很早以前装 Turbo Linux 的时候可以让你选择装或不装 GRUB ,装到什么位置,是 MBR 还是系统的 the first sector of boot partition ,即 /boot 分区的引导扇区,用户的选择性较大。而我现在试下来的两种版本的 Linux 似乎都没得选,必须要给你装上 GRUB ,没 GRUB 就不能启动 Linux 了?而且 Rocky Linux 在传统 MBR gap 只有 31K 的情况下甚至还装不上 GRUB !装不上就不能启动?!Linux 自己的引导程序哪去了?!
onlylove 写了: 2024-03-21 3:59 最后,你那个不能从光盘启动虚拟机的问题,麻烦去找vmware,或者你重启虚拟机的时候,显示vmware logo的时候,按一下esc(或者奇数下,偶数下会弹出又取消,总之弹出boot device选择),然后选择启动设备是光盘就可以了,总之我认为是vmware的问题,因为我用vbox,系统装好了以后从光盘启动虚拟机没问题
这个问题是我搞错了,我一时糊涂把 removable devices 当成 CD-ROM drive了,选对后可以从光驱启动了。
上次由 DOSforever 在 2024-03-21 20:48,总共编辑 1 次。
DOSforever
帖子: 13
注册时间: 2012-10-06 12:24

Re: 初装 Ubuntu 23.10.1 Desktop 的几个问题

#7

帖子 DOSforever » 2024-03-21 20:36

astolia 写了: 2024-03-21 12:10
DOSforever 写了: 2024-03-21 2:00 分区时没有地方让你选是采用 MBR 类型还是 GPT 类型,安装完后看似乎是 GPT 类型的
是的,现在即使是传统bios/mbr启动模式下,也默认给你创建一个gpt分区表
DOSforever 写了: 2024-03-21 2:00 我一直对这个类型的分区很有兴趣,不知他的作用是什么。
这个bios boot分区就是grub开发者为了能让在gpt分区表在传统bios/mbr启动模式下正常运作而搞出来的东西
DOSforever 写了: 2024-03-21 2:00 问题3:而且,难道这个 bios boot 区只在 GPT 类型的分区上才有效?在 MBR 类型的分区上无效?也不需要?
是的。因为在gpt分区上,作为兼容而存在的mbr后面直接就是gpt分区的数据结构,没有预留的空间,所以需要额外划分一个分区出来放grub的引导代码。而现代的分区工具在划分mbr分区时会自动预留足够空间,自然不需要这种技巧。
DOSforever 写了: 2024-03-21 2:00 问题2:我如果要按 MBR 类型分怎么分?
在分区那步之前,运行gparted或者开终端运行fdisk,在硬盘上创建msdos类型的分区表即可
多谢以上解释。我还以为这个 bios boot 是为 MBR gap 空间不够准备的,没想到是只为 GPT 准备的。
一个问题是,在分区那步之前,如何运行 gparted 或打开终端?找不到这方面的入口。

在实机上试了下,该机之前已经分好了各区,包括 Linux 的 /boot , / , /swap 区,安装了 DOS , Windows 等各个操作系统。安装过程到 Type of installation 这一步,选 Manual partitioning ,点 Next 出现列出我已有分区的界面,对话框不能拉大,最上方彩条不能列出我所有的分区,最右边一列不能显示完整,只看到 Fo 两个字母,我猜想应该是 Format ,对话框上下左右都不能拉大调整。后来我安装时的语言换成中文才完整显示“格式化”三个字。咦,奇怪,怎么我在虚拟机中安装的时候没碰到这问题,难道是因为实机上屏幕比较小,分辨率只有 1366x768 的缘故?看来 Ubuntu 的安装程序在这方面还有待改进。
重新对原有的 /boot , / , /swap 三个区格式化并 mount ,但只要 mount 了一个 /boot 区,下方的 Device for boot loader installation 就会自动选定该分区所在磁盘,那么怎么解释这个 boot loader ?是 GRUB2 还是仅仅是 Linux 自带的引导程序?这个 boot loader 是仅仅是安装到 /boot 分区的引导扇区,还是安装到 MBR (包括 MBR embedding area)上?假如是安装到 MBR 上的那也就是说不经我同意就直接将他的引导程序覆盖我原有的 MBR 内容了?不敢再进行下一步了。
这还是回到了我一开始的问题:GRUB2 和 Linux 是深度绑定的吗?能不能在不安装 GRUB2 的情况下安装 Linux ?如何用 Linux 自己的引导程序引导自己而不是 GRUB2 ?在 MBR gap 只有 31K 的情况下如何安装 GRUB2?
如何用 blocklists 安装 GRUB2 ?即按照 GRUB2 的官方说明 https://www.gnu.org/software/grub/manua ... stallation
or the core image can be installed in a file system and a list of the blocks that make it up can be stored in the first sector of that partition.

头像
astolia
论坛版主
帖子: 6452
注册时间: 2008-09-18 13:11

Re: 初装 Ubuntu 23.10.1 Desktop 的几个问题

#8

帖子 astolia » 2024-03-22 0:10

DOSforever 写了: 2024-03-21 20:36一个问题是,在分区那步之前,如何运行 gparted 或打开终端?找不到这方面的入口。
直接进安装模式的话点屏幕左上角横点按钮再左下九个点。或者进试用模式,创建好分区表后再执行安装程序
DOSforever 写了: 2024-03-21 20:36 重新对原有的 /boot , / , /swap 三个区格式化并 mount ,但只要 mount 了一个 /boot 区,下方的 Device for boot loader installation 就会自动选定该分区所在磁盘,那么怎么解释这个 boot loader ?
grub和其他的引导程序在传统bios/mbr启动模式下都是分三个阶段逐步引导的。

要想引导文件系统上的系统内核,就要先找到内核文件,就要先理解文件系统的数据结构,也就是说,引导代码中要包含目标文件系统驱动。
而mbr中能存放引导代码的空间只有446字节,对于复杂的现代文件系统来说,是肯定放不下的,所以做法是把包含基础驱动的核心功能代码放到其他地方,在执行mbr中的代码时(这是第一阶段)跳转到那个地方继续执行核心功能代码(第二阶段)。
搞定驱动后,就可以理解文件系统的结构了,就可以读取配置文件、加载其他模块,最后启动系统内核(第三阶段)。

在上面的过程中,第三阶段的文件是放到/boot分区下,而第二阶段的代码是写入mbr embedding area。所以上面的Device for boot loader installation实际上指的是前两个阶段
DOSforever 写了: 2024-03-21 20:36 这还是回到了我一开始的问题:GRUB2 和 Linux 是深度绑定的吗?
不是,你完全可以用其他的引导程序。比如在针对树莓派的ubuntu系统上,就用的是u-boot来引导。甚至如同你上一个帖子里有人提到的,你拿grub4dos去引导linux也是可行的
DOSforever 写了: 2024-03-21 20:36 能不能在不安装 GRUB2 的情况下安装 Linux ?
可以。但就不能用ubuntu这种自动化的安装程序了,基本上你需要手动执行安装程序中的每一步操作,可以看看archlinux的安装步骤 https://wiki.archlinuxcn.org/wiki/%E5%A ... 7%E5%8D%97
DOSforever 写了: 2024-03-21 20:36 如何用 Linux 自己的引导程序引导自己而不是 GRUB2 ?
不存在“Linux 自己的引导程序”这么一个东西。
DOSforever 写了: 2024-03-21 20:36 如何用 blocklists 安装 GRUB2 ?
block list不是这么用的。
它是grub配置文件里一种不用文件路径来指定文件的方式,用它的话就可以不要文件系统驱动了 https://www.gnu.org/software/grub/manua ... yntax.html
而读取配置文件通常是在第三阶段才干的事,所以你需要将配置文件嵌入负责第二阶段的core.img里,https://www.gnu.org/software/grub/manua ... ation.html
再将生成的core.img写入mbr后的位置。

这种方式很麻烦,因为每次更新内核文件后,你都要重新查找内核文件所占用的区块,然后重新生成配置文件和core.img,再重新写入磁盘。要想自动化这个过程的话,只能自己写脚本,系统上现有的自动更新grub配置的功能是帮不了你的
回复