全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: 天权璇玑
打印 上一主题 下一主题

[美国VPS] Linux一键重装支持Debian 12,Ubuntu 22.04,史上最强

  [复制链接]
61#
发表于 2023-4-21 18:12:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
62#
 楼主| 发表于 2023-4-21 18:14:57 | 只看该作者
巴勒蒙干 发表于 2023-4-21 17:46
你得改变算法。

不要依赖非标准的配置文件(比如判断这些/etc/redhat-release,/etc/system-release,有 ...

我已经用“或”条件来减少对 grub 是否存在的误判了,具体到代码里,我条件是这么写的:

  1. [[ -n `grep -w "grub-mkconfig" $GRUBDIR/$GRUBFILE` ]] || [[ `type grub-mkconfig` != "" ]]
复制代码


优先检查 grub 引导文件里有没有提示用户使用“grub-mkconfig”更新引导配置的注释,如果没有,就检查“grub-mkconfig”这条命令是否能运行,这是我这个程序判断是否能写入安装文件引导重启的前提,如果这关都过不了,说明管理该系统的引导方式并不是“grub”,我所知的绝大部分VPS后台模板提供的系统都是由 grub 来负责系统引导处理的,所以我处理写入新引导配置的工作也必须围绕 grub 展开
63#
发表于 2023-4-21 18:19:36 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
64#
 楼主| 发表于 2023-4-21 18:27:31 | 只看该作者
本帖最后由 天权璇玑 于 2023-4-21 18:32 编辑
巴勒蒙干 发表于 2023-4-21 18:19
你怎么能这样想呢

有一些系统安装好且能工作的grub,其配置文件和准备工具(如grub-mkconfig)有时往 ...


update-grub 和 grub-mkconfig 是等价的,如果跑不了后者,说明前者也跑不了,在 Redhat 系列里就是这样的,有不少人佐证过:

https://www.nixcraft.com/t/how-to-update-grub-on-rhel-or-centos-linux/3824

The update-grub is a stub for running grub-mkconfig -o /boot/grub/grub.cfg to generate a grub2 config file on Debian or Ubuntu.

我刚在重装干净的 CentOS 9-stream 跑过 update-grub 或 update-grub2,都无法运行:

[root@centos ~]# update-grub
-bash: update-grub: command not found
[root@centos ~]# update-grub2
-bash: update-grub2: command not found

update-grub 之所以能执行,底层是由 grub-mkconfig 命令实现的,而且我不能为了引入一个只在 Debian 系列通用的简化版命令,在更新 grub 流程中再加入不同系统判断,使用不同刷新命令,那样更复杂,也没有意义
65#
 楼主| 发表于 2023-4-21 18:30:48 | 只看该作者
巴勒蒙干 发表于 2023-4-21 18:19
你怎么能这样想呢

有一些系统安装好且能工作的 grub,其配置文件和准备工具(如grub-mkconfig)有时往 ...


刚才链接里回答者明确告诉在红帽、CentOS 里,更新 grub 引导的命令就是 grub2-mkconfig,因为从 7 以后,用的都是 grub2,没有其他更新引导的方法:

Updating Grub boot loader on an RHEL or CentOS Linux

  1.     1. Open the terminal app
  2.     2. Edit the /etc/default/grub as per your needs. For example:
  3.     sudo vim /etc/default/grub
  4.     3. Type the following command as root user:
  5.     sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  6.     4. Reboot your Linux box
  7.     sudo reboot
复制代码
66#
 楼主| 发表于 2023-4-21 18:39:48 | 只看该作者
巴勒蒙干 发表于 2023-4-21 18:19
你怎么能这样想呢

有一些系统安装好且能工作的grub,其配置文件和准备工具(如grub-mkconfig)有时往 ...

这是 CentOS 的官方文档:https://www.unix.com/man-page/centos/8/update-grub/,里面明确说了 update-grub, update-grub2 是 grub-mkconfig grub2-mkconfig 的人性化写法,标准就是这样的,我的工作也得按照标准展开,如果不符合标准,这个系统的定制还是比较失败、令人失望的,也不值得在这种极其罕见的案例上浪费时间适配:

  1. NAME

  2.        update-grub, update-grub2 - stub for grub-mkconfig

  3. SYNOPSIS

  4.        update-grub

  5. DESCRIPTION

  6.        update-grub is a stub for running grub-mkconfig -o /boot/grub/grub.cfg to generate a grub2 config file.
复制代码
67#
发表于 2023-4-21 18:45:21 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
68#
发表于 2023-4-21 18:48:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
69#
 楼主| 发表于 2023-4-21 18:56:25 | 只看该作者
巴勒蒙干 发表于 2023-4-21 18:48
还有。update-grub绝不仅仅是调用一次grub2-mkconfig
它还把initramfs重新打包了一次。

Emm……,Debian 官方文档里,也很明显说明了,update grub 就是 grub-mkconfig 的简写:

https://manpages.debian.org/buster/grub2-common/update-grub.8.en.html


  1. NAME
  2. update-grub, update-grub2 - stub for grub-mkconfig
  3. SYNOPSIS
  4. update-grub
  5. DESCRIPTION
  6. update-grub is a stub for running grub-mkconfig -o /boot/grub/grub.cfg to generate a grub2 config file.
复制代码

点评

你不要光看文档嘛。。光看文档不如不看。update-grub会打包initramfs的。这是千真W确的事。如果你不知道。肯定你没试过。试过就好了  发表于 2023-4-21 19:00
70#
发表于 2023-4-21 18:57:04 | 只看该作者
我想把centos7换成Debian11但是出现这个问题怎么解决?

点评

很明显。。initramfs unpacking failed,,就是脚本重打包了initramfs,搞坏了系统。就是我提到的。一秒得证。  发表于 2023-4-22 20:35
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-9 08:44 , Processed in 0.070161 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表