您尚未登录。

#16 2022-01-13 20:43:13

Watermelon.Rei
会员
注册时间: 2021-12-29
帖子: 114

Re: 引导问题,请教

lessonj 说:
依云 说:
gzroc 说:

直接 装grub,意思是安装arch的时候一起安装grub吗?然后生成配置和安装os-prober,那我需要先弄个efi分区吗?再挂载成/boot?efi分区要划分在硬盘最前面吗?好多问题不清楚,版主能说下具体的操作步骤吗?

这些 ArchWiki 的安装指南都有写的啊。
你不是 UEFI 启动,当然不需要 efi 分区了。需要你硬盘最前边有足够的空间,fdisl -l 先看看吧。
注意 os-prober 默认禁用,需要在 /etc/default/grub 里改一个配置项来启用。

有个问题想请教一下,使用EFI引导安装wingdows7后,会自动生成一个100M的EFI引导分区,然后有个16M的保留分区,在EFI引导安装ARCHLINUX时,这个分区好像已经不能调整了,安装完后这个分区基本上已使用96M,差不多满了,后续滚动升级内核时会提示/boot/...分区已满,这个有可行的解决方案吗?

可以放弃把efi分区挂载到/boot(可以挂载到/efi),这样内核安装时使用的/boot目录实际上位于系统分区,让内核存储在系统分区里(要确保grub支持识别你的系统分区,ext4 btrfs应该没有问题)。记着重新安装一次grub。
efi分区可以试着清理一下,除了分区内的EFI文件夹,其它文件都可以清理掉
EFI文件夹内存储了引导器相关的文件,删除以后会导致UEFI系统找不到引导。我不确定你的win7是通过什么引导方式启动的,如果采用的是MBR,那么这个EFI文件夹可能就只包含两个子文件夹,一个BOOT一个GRUB,如果使用EFI方式,那么应该包含三个子文件夹,BOOT GRUB MICROSOFT

最近编辑记录 Watermelon.Rei (2022-01-13 21:06:58)

离线

#17 2022-01-14 23:15:56

gzroc
会员
注册时间: 2021-03-24
帖子: 224

Re: 引导问题,请教

我已添加了 GRUB_PRELOAD_MODULES="... lvm",但还是认不了lvm,开机出现下图
FluxBB bbcode 测试

离线

#18 2022-01-15 00:02:50

Watermelon.Rei
会员
注册时间: 2021-12-29
帖子: 114

Re: 引导问题,请教

gzroc 说:

我已添加了 GRUB_PRELOAD_MODULES="... lvm",但还是认不了lvm,开机出现下图
https://s2.loli.net/2022/01/14/lYu6gLNSDp5yr8c.jpg

!!!添加了 GRUB_PRELOAD_MODULES="... lvm"!!! 这里的意思是你找到GRUB_PRELOAD_MODULES这一行,在项目里添加lvm,例如我的配置里默认是这样的:
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
那么我要改为
GRUB_PRELOAD_MODULES="part_gpt part_msdos lvm" 我不确定"... lvm"这样的用法是否正确


你的截图表明grub引导成功了,现在应该是卡在了initramfs上

尝试参考
https://wiki.archlinux.org/title/Instal … cpio_hooks

mkinitcpio需要启用合适的hook,在
/etc/mkinitcpio.conf
文件中添加HOOKS:
(这里有一点我没有理解,我不确定mkinitcpio依赖的hooks是否需要与系统的init一致,默认安装的话系统的init采用systemd,这里我猜不必与系统init保持一致,多试试吧 big_smile 我没有使用过lvm作为根目录挂载,也只能看看wiki参考)使用基于busybox的initramfs:
HOOKS=(base udev ... block lvm2 filesystems)
如果使用基于systemd的initramfs,配置为:
HOOKS=(base systemd ... block lvm2 filesystems)
这里的HOOKS有先后顺序,和前面一样,省略号表明中间可能存在其他HOOK,不要搞错了

另外需要注意的一点:你需要在arch-chroot环境中安装额外的lvm2包,如果lvm2仅安装在arch-chroot外的环境,mkinitcpio会报错:
Error: Hook 'lvm2' cannot be found.(这里使用pacman -S lvm2 确保一下吧)
确保以上两点后运行mkinitcpio -P 重新生成initramfs

最近编辑记录 Watermelon.Rei (2022-01-15 00:16:12)

离线

#19 2022-01-15 12:02:38

gzroc
会员
注册时间: 2021-03-24
帖子: 224

Re: 引导问题,请教

Watermelon.Rei 说:
gzroc 说:

我已添加了 GRUB_PRELOAD_MODULES="... lvm",但还是认不了lvm,开机出现下图
https://s2.loli.net/2022/01/14/lYu6gLNSDp5yr8c.jpg

!!!添加了 GRUB_PRELOAD_MODULES="... lvm"!!! 这里的意思是你找到GRUB_PRELOAD_MODULES这一行,在项目里添加lvm,例如我的配置里默认是这样的:
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
那么我要改为
GRUB_PRELOAD_MODULES="part_gpt part_msdos lvm" 我不确定"... lvm"这样的用法是否正确


你的截图表明grub引导成功了,现在应该是卡在了initramfs上

尝试参考
https://wiki.archlinux.org/title/Instal … cpio_hooks

mkinitcpio需要启用合适的hook,在
/etc/mkinitcpio.conf
文件中添加HOOKS:
(这里有一点我没有理解,我不确定mkinitcpio依赖的hooks是否需要与系统的init一致,默认安装的话系统的init采用systemd,这里我猜不必与系统init保持一致,多试试吧 big_smile 我没有使用过lvm作为根目录挂载,也只能看看wiki参考)使用基于busybox的initramfs:
HOOKS=(base udev ... block lvm2 filesystems)
如果使用基于systemd的initramfs,配置为:
HOOKS=(base systemd ... block lvm2 filesystems)
这里的HOOKS有先后顺序,和前面一样,省略号表明中间可能存在其他HOOK,不要搞错了

另外需要注意的一点:你需要在arch-chroot环境中安装额外的lvm2包,如果lvm2仅安装在arch-chroot外的环境,mkinitcpio会报错:
Error: Hook 'lvm2' cannot be found.(这里使用pacman -S lvm2 确保一下吧)
确保以上两点后运行mkinitcpio -P 重新生成initramfs

成功了,谢谢你!比如我想隐藏第二项的advance…项,要如何配置呢?

最近编辑记录 gzroc (2022-01-15 12:54:15)

离线

#20 2022-01-15 20:42:15

Watermelon.Rei
会员
注册时间: 2021-12-29
帖子: 114

Re: 引导问题,请教

gzroc 说:
Watermelon.Rei 说:
gzroc 说:

我已添加了 GRUB_PRELOAD_MODULES="... lvm",但还是认不了lvm,开机出现下图
https://s2.loli.net/2022/01/14/lYu6gLNSDp5yr8c.jpg

!!!添加了 GRUB_PRELOAD_MODULES="... lvm"!!! 这里的意思是你找到GRUB_PRELOAD_MODULES这一行,在项目里添加lvm,例如我的配置里默认是这样的:
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
那么我要改为
GRUB_PRELOAD_MODULES="part_gpt part_msdos lvm" 我不确定"... lvm"这样的用法是否正确


你的截图表明grub引导成功了,现在应该是卡在了initramfs上

尝试参考
https://wiki.archlinux.org/title/Instal … cpio_hooks

mkinitcpio需要启用合适的hook,在
/etc/mkinitcpio.conf
文件中添加HOOKS:
(这里有一点我没有理解,我不确定mkinitcpio依赖的hooks是否需要与系统的init一致,默认安装的话系统的init采用systemd,这里我猜不必与系统init保持一致,多试试吧 big_smile 我没有使用过lvm作为根目录挂载,也只能看看wiki参考)使用基于busybox的initramfs:
HOOKS=(base udev ... block lvm2 filesystems)
如果使用基于systemd的initramfs,配置为:
HOOKS=(base systemd ... block lvm2 filesystems)
这里的HOOKS有先后顺序,和前面一样,省略号表明中间可能存在其他HOOK,不要搞错了

另外需要注意的一点:你需要在arch-chroot环境中安装额外的lvm2包,如果lvm2仅安装在arch-chroot外的环境,mkinitcpio会报错:
Error: Hook 'lvm2' cannot be found.(这里使用pacman -S lvm2 确保一下吧)
确保以上两点后运行mkinitcpio -P 重新生成initramfs

成功了,谢谢你!比如我想隐藏第二项的advance…项,要如何配置呢?

还记得之前使用过的grub-mkconfig -o /boot/grub/grub.cfg命令吗,/boot/grub/grub.cfg这个文件存储了你的grub引导菜单配置,你可以自己进去研究一下
我不建议你删除advance那一项,那里面有两个子项,一个是你当前系统的引导项,还有一个是你上一个内核版本的备份项,如果更新滚挂了或者引起了一些问题,可以尝试选择备份项回滚

离线

#21 2022-01-16 15:10:19

gzroc
会员
注册时间: 2021-03-24
帖子: 224

Re: 引导问题,请教

Watermelon.Rei 说:
gzroc 说:
Watermelon.Rei 说:
gzroc 说:

我已添加了 GRUB_PRELOAD_MODULES="... lvm",但还是认不了lvm,开机出现下图
https://s2.loli.net/2022/01/14/lYu6gLNSDp5yr8c.jpg

!!!添加了 GRUB_PRELOAD_MODULES="... lvm"!!! 这里的意思是你找到GRUB_PRELOAD_MODULES这一行,在项目里添加lvm,例如我的配置里默认是这样的:
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
那么我要改为
GRUB_PRELOAD_MODULES="part_gpt part_msdos lvm" 我不确定"... lvm"这样的用法是否正确


你的截图表明grub引导成功了,现在应该是卡在了initramfs上

尝试参考
https://wiki.archlinux.org/title/Instal … cpio_hooks

mkinitcpio需要启用合适的hook,在
/etc/mkinitcpio.conf
文件中添加HOOKS:
(这里有一点我没有理解,我不确定mkinitcpio依赖的hooks是否需要与系统的init一致,默认安装的话系统的init采用systemd,这里我猜不必与系统init保持一致,多试试吧 big_smile 我没有使用过lvm作为根目录挂载,也只能看看wiki参考)使用基于busybox的initramfs:
HOOKS=(base udev ... block lvm2 filesystems)
如果使用基于systemd的initramfs,配置为:
HOOKS=(base systemd ... block lvm2 filesystems)
这里的HOOKS有先后顺序,和前面一样,省略号表明中间可能存在其他HOOK,不要搞错了

另外需要注意的一点:你需要在arch-chroot环境中安装额外的lvm2包,如果lvm2仅安装在arch-chroot外的环境,mkinitcpio会报错:
Error: Hook 'lvm2' cannot be found.(这里使用pacman -S lvm2 确保一下吧)
确保以上两点后运行mkinitcpio -P 重新生成initramfs

成功了,谢谢你!比如我想隐藏第二项的advance…项,要如何配置呢?

还记得之前使用过的grub-mkconfig -o /boot/grub/grub.cfg命令吗,/boot/grub/grub.cfg这个文件存储了你的grub引导菜单配置,你可以自己进去研究一下
我不建议你删除advance那一项,那里面有两个子项,一个是你当前系统的引导项,还有一个是你上一个内核版本的备份项,如果更新滚挂了或者引起了一些问题,可以尝试选择备份项回滚

感谢你的耐心指导。。

离线

#22 2022-01-16 16:53:19

Watermelon.Rei
会员
注册时间: 2021-12-29
帖子: 114

Re: 引导问题,请教

gzroc 说:
Watermelon.Rei 说:
gzroc 说:
Watermelon.Rei 说:
gzroc 说:

我已添加了 GRUB_PRELOAD_MODULES="... lvm",但还是认不了lvm,开机出现下图
https://s2.loli.net/2022/01/14/lYu6gLNSDp5yr8c.jpg

!!!添加了 GRUB_PRELOAD_MODULES="... lvm"!!! 这里的意思是你找到GRUB_PRELOAD_MODULES这一行,在项目里添加lvm,例如我的配置里默认是这样的:
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
那么我要改为
GRUB_PRELOAD_MODULES="part_gpt part_msdos lvm" 我不确定"... lvm"这样的用法是否正确


你的截图表明grub引导成功了,现在应该是卡在了initramfs上

尝试参考
https://wiki.archlinux.org/title/Instal … cpio_hooks

mkinitcpio需要启用合适的hook,在
/etc/mkinitcpio.conf
文件中添加HOOKS:
(这里有一点我没有理解,我不确定mkinitcpio依赖的hooks是否需要与系统的init一致,默认安装的话系统的init采用systemd,这里我猜不必与系统init保持一致,多试试吧 big_smile 我没有使用过lvm作为根目录挂载,也只能看看wiki参考)使用基于busybox的initramfs:
HOOKS=(base udev ... block lvm2 filesystems)
如果使用基于systemd的initramfs,配置为:
HOOKS=(base systemd ... block lvm2 filesystems)
这里的HOOKS有先后顺序,和前面一样,省略号表明中间可能存在其他HOOK,不要搞错了

另外需要注意的一点:你需要在arch-chroot环境中安装额外的lvm2包,如果lvm2仅安装在arch-chroot外的环境,mkinitcpio会报错:
Error: Hook 'lvm2' cannot be found.(这里使用pacman -S lvm2 确保一下吧)
确保以上两点后运行mkinitcpio -P 重新生成initramfs

成功了,谢谢你!比如我想隐藏第二项的advance…项,要如何配置呢?

还记得之前使用过的grub-mkconfig -o /boot/grub/grub.cfg命令吗,/boot/grub/grub.cfg这个文件存储了你的grub引导菜单配置,你可以自己进去研究一下
我不建议你删除advance那一项,那里面有两个子项,一个是你当前系统的引导项,还有一个是你上一个内核版本的备份项,如果更新滚挂了或者引起了一些问题,可以尝试选择备份项回滚

感谢你的耐心指导。。

都是看wiki学的,有能力可以多看看wiki,里面能解决大部分常见问题

离线

页脚