请教grub2有没有办法做字符串处理,用以实现自动探测并启动硬盘中的linux

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
fuhuizn
帖子: 948
注册时间: 2006-01-06 22:55
系统: ubuntu
联系:

请教grub2有没有办法做字符串处理,用以实现自动探测并启动硬盘中的linux

#1

帖子 fuhuizn » 2018-03-16 11:48

下面这个 menuentry 启动时只能手动输入root参数,无法自动生成合适的root参数,有没有办法实现字符串的替换?

代码: 全选

menuentry '硬盘Linux' {
	search --file /vmlinuz --set=root
	search --file /etc/fstab --set=part_lin
	echo "发现 Linux 内核在: $root"
	echo "发现可能的 Linux 根分区: $part_lin"
	echo "输入根分区位置( Linux参数:root=/dev/sdaX )"
	echo "要求输入格式: /dev/sdaX :"
	read lin_root
	linux /vmlinuz ro root=$lin_root
	initrd /initrd.img
}
fuhuizn
帖子: 948
注册时间: 2006-01-06 22:55
系统: ubuntu
联系:

Re: 请教grub2有没有办法做字符串处理,用以实现自动探测并启动硬盘中的linux

#2

帖子 fuhuizn » 2018-03-16 13:30

解决

代码: 全选

regexp --set=x '.*([0-9]+)$' $part_lin
set root_lin="/dev/sda$x"
不好意思,之前有错,正则表达式不能用双引号,只能用单引号
头像
疯无可疯
帖子: 64
注册时间: 2009-03-13 21:27

Re: 请教grub2有没有办法做字符串处理,用以实现自动探测并启动硬盘中的linux

#3

帖子 疯无可疯 » 2020-04-07 1:43

请教版主哪里有grub2的regexp --set的详解资料?
大道至简,大象无形。
回复