全球主机交流论坛

标题: 可怕,设置调节 swap 功能竟然鸽了 4 个月 [打印本页]

作者: 天权璇玑    时间: 2023-11-6 21:45
标题: 可怕,设置调节 swap 功能竟然鸽了 4 个月
距离上一次投票还是 7 月份:

Linux 一键重装脚本swap要不要加?要不要删?

默认不带 swap ,需要的话可以装好系统自己加,也可以指定 -swap "数字,以 mb 为单位" 预置,比如 -swap "1024" ,提前设置 1GB swap。

  1. bash InstallNET.sh -swap "1024"
复制代码


UEFI 固件强制 gpt 分区,BIOS 固件 2TB 以下硬盘默认 mbr 分区,如果想在 BIOS 环境强制 gpt 分区,可指定 -partition "gpt" 。

  1. bash InstallNET.sh -partition "gpt"
复制代码


文件系统方面,Debian/Kali 默认 ext4 ,CentOS/AlmaLinux/RockyLinux/Fedora 默认 xfs 且不可更改。如果想在 Debian/Kali 上使用 xfs ,可以指定:

  1. bash InstallNET.sh -filesystem "xfs"
复制代码


以前分区图省事,直接用 d-i partman-auto/init_automatically_partition select Guided - use entire disk 和 d-i partman-auto/choose_recipe select All files in one partition (recommended for new users) 写死,但不管在什么内存容量环境中安装,新系统里总是有一个接近 1GB 大小的 swap ,看来 Debian 用新手方式分区也不是很智能,无法根据当前系统内存容量和硬盘容量,自动给出一个适合的 swap 大小,正好有很多人想取消掉,那就干脆默认不要了。

把设置 swap 设置成可以灵活调节,看起来仅仅是比原来的方式少了一个 swap 分区而已,但实际操作起来难度并不小,因为要涉及到从头写一个手动分区的 recipe ,BIOS 的 mbr 或 gpt ,UEFI 都要兼顾到才行,工作量不小,主要是繁琐,好在测试完没发现什么问题。

preseed 里设置的分区大小,需要在原数字上 x 1.05078125 倍,在新系统里查看分区时才和原设置的数字相同,比如如果要一个 512 MB 的分区,preseed 里要设置成 538 MB 才行,不知道为什么。kickstart 里设置多大数字,目标系统分区容量就是多少,不需要做乘数。
作者: tylup    时间: 2023-11-6 21:47
牛!

但是感觉过于纠结了,而且这么做其实效益也不显著啊
作者: 天权璇玑    时间: 2023-11-6 21:51
tylup 发表于 2023-11-6 21:47
牛!

但是感觉过于纠结了,而且这么做其实效益也不显著啊

能灵活调节比不能好多了,有好多人回帖问我 swap 能不能删掉,于是干脆默认不要了,1GB swap 在许多小硬盘机器上还是占挺多的,工程学上就是这样,看起来就是比之前多了个小功能,但底层要做的工作并不少。
作者: 吹风秀跳刀    时间: 2023-11-6 21:56
前排支持技术大佬
作者: laoxong    时间: 2023-11-6 22:28
支持大佬
作者: sunman1g    时间: 2023-11-6 22:35
前排支持技术大佬
作者: 枝江小狼王    时间: 2023-11-6 22:38
支持技术贴
作者: shengran    时间: 2023-11-6 23:36
感谢大佬的辛苦付出,我恰恰相反,我想要2g的swap分区,这样能自定义就好多了
作者: kikuri    时间: 2023-11-7 01:43
大佬6666666
作者: 念念不忘    时间: 2023-11-7 07:15
本帖最后由 念念不忘 于 2023-11-7 08:53 编辑

支持
作者: 三分熱度    时间: 2023-11-7 07:23
支持大佬!
作者: 念念不忘    时间: 2023-11-7 11:38
吐了,我今天用大佬你的脚本dd我的aws机器,一直失败。昨天还用了,都没这个问题,今天就机器一直处于失联状态
作者: 天权璇玑    时间: 2023-11-7 11:58
念念不忘 发表于 2023-11-7 11:38
吐了,我今天用大佬你的脚本dd我的aws机器,一直失败。昨天还用了,都没这个问题,今天就机器一直处于失联 ...


是ec2还是lightsail?我测试一下吧,看看是不是新分区策略导致的
作者: 念念不忘    时间: 2023-11-7 12:14
天权璇玑 发表于 2023-11-7 11:58
是ec2还是lightsail?我测试一下吧,看看是不是新分区策略导致的

光帆。而且不光是aws,我的另外一台机器(小商家)的,刚才试过那脚本也失联了,已经麻了
作者: 天权璇玑    时间: 2023-11-7 12:38
念念不忘 发表于 2023-11-7 12:14
光帆。而且不光是aws,我的另外一台机器(小商家)的,刚才试过那脚本也失联了,已经麻了 ...

装的都是debian吗?有vnc的话看一下吧,有什么报错
作者: 打狗办    时间: 2023-11-7 12:41
5k狗竟然没出现
作者: 提皮tp    时间: 2023-11-7 12:51
有考虑做个zram脚本吗,内存压缩在cpu性能ok的情况下也是不错的
作者: 天权璇玑    时间: 2023-11-7 13:02
提皮tp 发表于 2023-11-7 12:51
有考虑做个zram脚本吗,内存压缩在cpu性能ok的情况下也是不错的

zram在fedora上是默认开启的,即使安装时,kickstart里没有为其指定对应的磁盘分区recipe,在12gb内存的甲骨文arm上测试过,它占用的磁盘容量是1.9gb左右,不知道preseed里能不能开启这个功能
作者: 天权璇玑    时间: 2023-11-7 13:05
打狗办 发表于 2023-11-7 12:41
5k狗竟然没出现

5k的小脑瓜正在疯狂运转,等读懂了抄完提交,然后再来论坛里经典点评
作者: etc小号    时间: 2023-11-7 13:05
谢谢大佬分享,辛苦了
作者: 念念不忘    时间: 2023-11-7 13:12
天权璇玑 发表于 2023-11-7 12:38
装的都是debian吗?有vnc的话看一下吧,有什么报错

都是debian12,无vnc,脚本运行一切顺利,然后reboot,再然后就失联了,昨天都没这个问题
作者: 故乡的云    时间: 2023-11-7 13:14
支持
作者: 点点    时间: 2023-11-7 13:38
大佬的脚本安装自己的乌班图22+是要传完整路径的,你文档说只要传目录。可把我坑惨了。
作者: dahai0405    时间: 2023-11-7 13:42
大佬 上次说选择硬盘 能不能实现参数添加安装硬盘 或者交互式选择硬盘 ?
作者: 天权璇玑    时间: 2023-11-7 13:57
点点 发表于 2023-11-7 13:38
大佬的脚本安装自己的乌班图22+是要传完整路径的,你文档说只要传目录。可把我坑惨了。 ...

自定义Cloud image dd包好像确实要给完整url,疏漏了,抱歉
作者: 天权璇玑    时间: 2023-11-7 14:00
dahai0405 发表于 2023-11-7 13:42
大佬 上次说选择硬盘 能不能实现参数添加安装硬盘 或者交互式选择硬盘 ?

能,指定 -setdisk "/dev/sdb" 就能把系统安装到其他硬盘,如果要在安装程序里手动指定,只能整个过程都手动操作了:--allbymyself
作者: 天权璇玑    时间: 2023-11-7 14:01
dahai0405 发表于 2023-11-7 13:42
大佬 上次说选择硬盘 能不能实现参数添加安装硬盘 或者交互式选择硬盘 ?

如果有其他硬盘插入到硬件,安装后系统是能识别出来的
作者: dahai0405    时间: 2023-11-7 14:01
天权璇玑 发表于 2023-11-7 14:00
能,指定 -setdisk "/dev/sdb" 就能把系统安装到其他硬盘,如果要在安装程序里手动指定,只能整个过程都 ...

多谢!
作者: 天权璇玑    时间: 2023-11-7 15:13
本帖最后由 天权璇玑 于 2023-11-7 15:16 编辑
念念不忘 发表于 2023-11-7 13:12
都是debian12,无vnc,脚本运行一切顺利,然后reboot,再然后就失联了,昨天都没这个问题 ...


哥们儿,问题调查清楚了,完全不给 swap 在小内存机器上安装 debian 12 确实会引发一些问题,比如我开了一台吊配 ec2 arm t4g ,如果不分配 swap ,控制台会显示安装内核失败,临时的解决方案是给适当的 swap ,比如:bash InstallNET.sh -swap "1024" 就能解决,稍后我试试给 512m swap 行不行,如果行,我会在低内存模式下强制给这个量的 swap 以解决无法安装的问题
作者: 念念不忘    时间: 2023-11-7 15:22
天权璇玑 发表于 2023-11-7 15:13
哥们儿,问题调查清楚了,完全不给 swap 在小内存机器上安装 debian 12 确实会引发一些问题,比如我开了 ...

麻烦了,之前脚本一直正常,就今天突然用不了,难受
作者: 天权璇玑    时间: 2023-11-7 15:29
念念不忘 发表于 2023-11-7 15:22
麻烦了,之前脚本一直正常,就今天突然用不了,难受

aws 标称 0.5g 内存配置的机器实际可用物理内存是 472m ,所以才引发了安装时炸内存的问题,实测给 512mb 的 swap 就没事儿了,我在 idc.wiki 上实际可用内存为 511m 的机器上测试过 Linux kernel 6.5.0 的 kali ,占用比 Debian 12 的 6.1.0 kernel 还要大一些,没发现炸内存的问题,但考虑到未来版本随着内核变大,炸掉可能不可避免,所以接下来准备设置一个稍高一点的基线
作者: 念念不忘    时间: 2023-11-7 15:34
天权璇玑 发表于 2023-11-7 15:29
aws 标称 0.5g 内存配置的机器实际可用物理内存是 472m ,所以才引发了安装时炸内存的问题,实测给 512mb ...

下次用你的脚本,要加上swap参数变量,最低512m,懂了,我晚些时候试试看
作者: 天权璇玑    时间: 2023-11-7 15:38
念念不忘 发表于 2023-11-7 15:34
下次用你的脚本,要加上swap参数变量,最低512m,懂了,我晚些时候试试看

超低内存下脚本会自动给 512m swap,等修完了给你通知,如果你现在要用,先指派 -swap "512" 应急
作者: 念念不忘    时间: 2023-11-7 15:39
天权璇玑 发表于 2023-11-7 15:38
超低内存下脚本会自动给 512m swap,等修完了给你通知,如果你现在要用,先指派 -swap "512" 应急 ...

懂了,我等你更新好了再试,不急慢慢来
作者: 天权璇玑    时间: 2023-11-7 16:38
本帖最后由 天权璇玑 于 2023-11-7 16:46 编辑
念念不忘 发表于 2023-11-7 15:39
懂了,我等你更新好了再试,不急慢慢来


刚开了一台 aws lightsail 的最低配机型,标称 0.5G 内存实际容量是 489mb ,跟标准的 512mb 容量还是差不少,通过在刚才 aws ec2 t4g 获得的经验,安装时给了 512mb swap,实测后是可以安装成功的,所以我定的基准线是低于 672mb 物理内存,且分配的 swap 少于 512mb 时,都会强制分配 512mb 内存,以避免安装失败。




作者: 天权璇玑    时间: 2023-11-7 16:43
念念不忘 发表于 2023-11-7 15:39
懂了,我等你更新好了再试,不急慢慢来

代码更新了,lightsail 或 ec2 小内存机型安装都没问题了
作者: 念念不忘    时间: 2023-11-7 16:44
天权璇玑 发表于 2023-11-7 16:43
代码更新了,lightsail 或 ec2 小内存机型安装都没问题了

好的,我的之前两台失败的机器我都去试试
作者: 念念不忘    时间: 2023-11-7 17:19
本帖最后由 念念不忘 于 2023-11-7 20:27 编辑
**璇玑 发表于 2023-11-7 16:43
代码更新了,lightsail 或 ec2 小内存机型安装都没问题了


已经都试过了,无论是否指定swap,两台机器都dd成功了,谢谢大佬的脚本
作者: taotao    时间: 2023-11-10 03:22
支持大佬,辛苦啦
作者: 念念不忘    时间: 2023-11-22 16:13
我尝试你的内核新功能时,在”apt install linux-xanmod-lts-x64v3 -y“,提示E: Unable to locate package linux-xanmod-lts-x64v3
E:无法找到软件包 linux-xanmod-lts-x64v3
作者: 天权璇玑    时间: 2023-11-22 16:29
念念不忘 发表于 2023-11-22 16:13
我尝试你的内核新功能时,在”apt install linux-xanmod-lts-x64v3 -y“,提示E: Unable to locate package ...

需要单独安装xanmod,具体我稍后放出
作者: 念念不忘    时间: 2023-11-23 13:30
W: GPG error: http://deb.xanmod.org releases InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 86F7D09EE734E623
E: The repository 'http://deb.xanmod.org releases InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.


aws_sg
作者: 天权璇玑    时间: 2023-11-23 13:38
本帖最后由 天权璇玑 于 2023-11-23 13:41 编辑
念念不忘 发表于 2023-11-23 13:30
W: GPG error: http://deb.xanmod.org releases InRelease: The following signatures couldn't be verifie ...


写了一个小教程,具体参见:https://github.com/leitbogioro/Tools/blob/master/README.md#little-tutorial-installing-xanmod-on-debian

安装前建议把 bbr 装上:

  1. bash InstallNET.sh --bbr
复制代码


顺序是先用脚本安装标准 Debian 环境并开启 bbr ,然后再按教程安装 XanMod
作者: 念念不忘    时间: 2023-11-23 13:48
天权璇玑 发表于 2023-11-23 13:38
写了一个小教程,具体参见:https://github.com/leitbogioro/Tools/blob/master/README.md#little-tutori ...

这个我开启了,
作者: 天权璇玑    时间: 2023-11-23 13:54
本帖最后由 天权璇玑 于 2023-11-23 13:55 编辑
念念不忘 发表于 2023-11-23 13:48
这个我开启了,


再重装一次,根据教程安装 xanmod ,我在 Debian 11 12 上测试过,可以顺利安装,仅限 amd64 处理器


作者: 念念不忘    时间: 2023-11-23 13:56
root:~# wget -qO - https://dl.xanmod.org/archive.key | sudo gpg --dearmor -o /usr/share/keyrings/xanmod-archive-keyring.gpg
File '/usr/share/keyrings/xanmod-archive-keyring.gpg' exists. Overwrite? (y/N) y
gpg: no valid OpenPGP data found.


W: GPG error: http://deb.xanmod.org releases InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 86F7D09EE734E623
E: The repository 'http://deb.xanmod.org releases InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.


Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package linux-xanmod-lts-x64v3



作者: 念念不忘    时间: 2023-11-23 13:58
本帖最后由 念念不忘 于 2023-11-23 14:00 编辑

uname -a
Linux ip--cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64 GNU/Linux

作者: 念念不忘    时间: 2023-11-23 13:59
念念不忘 发表于 2023-11-23 13:56
root:~# wget -qO - https://dl.xanmod.org/archive.key | sudo gpg --dearmor -o /usr/share/keyrings/xan ...

过程,bash InstallNET.sh --bbr

然后按照你教程里面的那些命令,依次执行,上面是我途中遇到的错误
作者: 念念不忘    时间: 2023-11-23 14:11
关于你的新功能,最近我都遇到一个问题。
用那个装第三方内核的命令之后,不管内核是否成功(虽然实际上没成功过),当我再次运行bash InstallNET.sh --bbr命令的时候,脚本无法运行,提示缺少依赖(没运行那个之前,不管怎么d都没问题)
,而且依赖还装不行去(可能我技术不行)
------

  1. # Check Dependence

  2. [ok]                awk
  3. [ok]                basename
  4. [ok]                cat
  5. [ok]                cpio
  6. [ok]                curl
  7. [ok]                cut
  8. [ok]                dirname
  9. [ok]                file
  10. [ok]                find
  11. [ok]                grep
  12. [ok]                gzip
  13. [ok]                iconv
  14. [ok]                ip
  15. [ok]                lsblk
  16. [ok]                openssl
  17. [ok]                sed
  18. [ok]                wget
  19. [Not Install]        xz

  20. [Error] Please use 'apt-get' or 'yum / dnf' install it.

复制代码

作者: 天权璇玑    时间: 2023-11-23 14:34
本帖最后由 天权璇玑 于 2023-11-23 14:37 编辑

导入 gpg 密钥的那一步如果不按教程来,会出现错误,导致整个 apt 更新源失败,无法安装 xz,我把校验 xz  依赖部分删掉吧,你重下脚本安装

这是安装了 xanmod 的 Debian 11 重装前,重装时选择开启 bbr: --bbr



运行命令:

  1. bash InstallNET.sh --motd --bbr
复制代码


这是进新 Debian 12 系统后安装 xanmod 重启后的状态,可以看到 bbr 已开启,xanmod 也安装完成:


作者: 念念不忘    时间: 2023-11-23 14:39
我再试试




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4