记录一次把独显虚焊导致黑屏的笔记本改装Linux做无头服务器的过程
记录一次把独显虚焊导致黑屏的笔记本改装Linux做无头服务器的过程
硬件条件,2011年 的联想笔记本,型号Z465,AMDCPU,4G内存,500G 机械硬盘,是bios只支持dos分区表,不支持gpt
Z465 时代的 AMD 没有“CPU 核显”:AMD 直到 2011 年底推出 Llano APU(A系列)才把显卡塞进 CPU。你 2011 年的 Z465(AMD 速龙/羿龙),CPU 内部是不带核显的。
OS 选择:第一次是选择了rocky,因为支持更新的时间很长,大约有10年, 第二次选择了 Debian, 因为rocky的GUI安装程序anaconda,在磁盘分区的时候,强制gpt分区表,手动在命令行分区后不被识别,很麻烦,所以 turn to debian 文字界面安装 更自由
采取的方案:把硬盘拆下来,借助其他显示正常的PC,从U 盘启动,安装OS到 USB转接的笔记本电脑硬盘
遇到的问题和解决办法:
debian net image 最小安装之后 修改 内核启动参数 /etc/dfault/grub 之后执行 grub-mkconfig -o /boot/grub/grub.cfg 找不到 grub-mkconfig(属于 grub-common or grub2-common 包)命令 ,有线网口受限不便连接网络, 使用 usb 共享安卓手机的移动网络,但是 由于是debian最小安装没有 dhclient 命令(属于 isc-dhcp-client 包)
解决办法 : 从 能联网的机器 下载 grub-common grub2-common的 deb包,通过fat32 u盘,文件共享,使用dpkg -i 安装
https://www.debian.org/distrib/packages ,注意选对版本和机器架构使用借用的机器主板技嘉B460M-D3SH 设置 关闭Secure Boot,并开启CSM(Compatibility Support Module) CPU 核显通过 HDMI 或 DP 数字接口输出,会出现已知的黑屏问题
解决方法: 网上说法更新 固件包之后可以解决,实测没有解决,转用vga模拟输出配置了IP,能ping通,ssh连不上
需要把ssh服务设置为开机启动1
systemctl enable ssh --now
系统从u盘启动 总是uEFI,启动
需要Rufus dd写入,选择 mbr兼容模式,之后选择启动驱动器的时候,选择开头不带UEFI:的u盘
Install the GRUB boot loader to your primary drive?”
最好手动选择指定的硬盘,安装程序自动选择可能选错
学到了什么东西
个人主机后 有可能有两套 HDMI 或者 VGA 或者 DVI 输出接口,一套是主板的,如果cpu不带核显,插在主板的接口上点不亮屏幕
lvm和分区表的关系
分区表(MBR / GPT):是硬盘最底层的“骨架”,决定硬盘怎么划分出基础分区(如 sda1, sda2)。
LVM(逻辑卷管理):是建立在“物理分区”之上的“上层建筑”,用来把多个分区合并、动态调整大小。
关系:LVM 必须建立在某个物理分区上(比如 /dev/sda3)。这个物理分区既可以是 MBR 下的分区,也可以是 GPT 下的分区。
视频信号的分类
vga 模拟, 不支持热拔插
HDMI 数字
DVI 数字udev 规则可以根据MAC地址给 网卡重名,但是不一定有用,有可能会被网卡驱动重写为 enxae4141f031b9之类的名称
方法如下
1
2
3
4
5nano /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", ATTR{type}=="1", NAME="eth0"
update-initramfs -u
sudo dracut -f # 和上一hangsystemd 时间同步服务
1
2
3systemctl --version
apt install systemd-timesyncd
systemctl enable --now systemd-timesyncdsystemctl 控制关机,重启
1
2
3
4
5
6
7
8
9systemctl reboot
systemctl poweroff
systemctl poweroff -i
apt update
apt install systemd-sysv
sync
systemctl poweroffip 命令可以给有线网配置多个ip 临时的,系统重启或者 link down 就会消失
1 | # 1. 查看当前网卡名称和已有IP |
- FIPS(Federal Information Processing Standards,联邦信息处理标准)是美国政府制定的一套极其严格的加密安全标准。
1 |
|
- “如果没坏,就别修它” (If it ain’t broke, don’t fix it)
不要盲目跟 Debian 的大版本更新(如从 12 升 13)
为什么无头服务器绝对不能轻易“跟大版本”?
网卡改名/掉驱动风险极高:大版本升级通常会更新 Linux 内核。老笔记本(2011年)的网卡(有线或无线)在内核更新后,驱动可能会失效或网卡名字重新被打乱(比如你费尽心思固定了 eth0,新内核可能无视规则直接把它变成 enp2s0),一旦网卡掉了,你直接彻底失联。
GRUB 引导损坏:大版本更新会重写 GRUB。你这台机器是 MBR 分区的老 BIOS,如果在更新过程中 GRUB 写错位置(比如写到了 /dev/sda 的第一个分区而不是 MBR),重启后直接黑屏死机。而你没有显卡,无法连接显示器去修复,这就意味着只能再次拆硬盘。
配置文件冲突:升级过程中,Debian 会问你“是否保留旧配置文件”(比如 /etc/ssh/sshd_config、/etc/network/interfaces)。如果你在无头环境下通过 SSH 操作,一旦按错,SSH 服务重启失败,你就再也连不上了。
网线直连的“自动翻转”:
联想 Z465 是 2011 年的老机器,它的 USB 网卡是 AX88772B。这种老芯片可能不支持自动 MDI/MDIX 翻转。如果直连不通,可能需要一根 交叉线(Crossover Cable)。不过 USB 网卡通常比较智能,你可以先试普通网线,不通再去买交叉线。USB 网卡的“省电”:
直连时,如果笔记本关机,USB 网卡可能会因为主板 USB 接口断电而失去链路,这是正常的。硬盘分区创建,擦除,文件系统建立,toggle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32frisk /dev/sda
o (清空并新建 DOS/MBR 分区表)
n -> p -> 1 -> 回车 -> +1G (建 /boot)
a -> 1 (给 /boot 激活启动标志)
n -> p -> 2 -> 回车 -> +8G (建 swap)
n -> p -> 3 -> 回车 -> 回车 (建 /,占满剩余空间)
t -> 2 -> 82 (将第二个分区类型改为 Linux swap)
w (保存退出)
mkfs.ext4 /dev/sda1
mkswap /dev/sda2
mkfs.ext4 /dev/sda3
# 分区擦除
wipefs -a /dev/sda
# 如果提示设备忙,加上强制参数
wipefs -a -f /dev/sda
#确认硬盘分区类型
lsblk -o NAME,PTTYPE,SIZE,TYPE /dev/sda
#
sudo fdisk -l /dev/sda | grep "Disklabel type"
sudo parted -l /dev/sda
sudo blkid -p /dev/sda
内核启动参数 net.ifnames=0 biosdevname=0 禁用 systemd/udev 的“可预测网络接口名称”(Predictable Network Interface Names)机制,从而恢复传统的
eth0、eth1等命名方式1
2
3
4
5
6
7sudo vi /etc/default/grub
# 找到 GRUB_CMDLINE_LINUX 这一行,在行末的引号内添加以下内容
net.ifnames=0 biosdevname=0
# 如果是 UEFI 引导(现代电脑大多如此):
sudo grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
# 如果是 Legacy BIOS 引导:Leveno z465 就是 legacy bios
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
1 | `net.ifnames=0` 与 `biosdevname=0` 这两个内核参数**正在走向生命周期终点,未来发生重大变化甚至被移除的可能性很高**。以下是具体的分析与展望。 |
1 | `systemd` 的 `.link` 文件提供了一种比内核参数更灵活、更持久的方式来为网络接口分配自定义名称。它通过匹配设备的硬件属性(如 MAC 地址、物理路径)来重命名接口,是替代 `net.ifnames=0` 的推荐方案。 |
- MBR 分区
在 MBR 架构下,一块硬盘最多只能有 4 个主分区。
如果你只需要 3 个分区(/boot、swap、/),完全在主分区的名额之内。
只有当你需要创建 5 个或更多分区时,才必须牺牲一个主分区的名额,把它变成“扩展分区”,然后再在里面切出逻辑分区(比如 sda5、sda6)。
判断对grub的修改是否生效
1
2
3
4
5
6
7
8
9grep GRUB_CMDLINE_LINUX /etc/default/grub # 确认修改的行内容是想要的
#具体的例子 就是
# 如果输出里包含了 net.ifnames=0 biosdevname=0:说明文本改对了。
#如果输出里没有这两个参数:说明你还没改。
grep net.ifnames /boot/grub/grub.cfg
# 如果显示有 net.ifnames=0:说明已经生效了(可能会显示很多行,这是正常的)。
#如果没有任何输出:说明没生效。即使你第一步改对了,也没有成功写入引导。使用 systemd系统的systemd-networkd服务,给网卡配置静态双ip
1
2
3
4
5
6
7
8
9
10
11[Match]
# Name=eth0, 名称不确定,匹配时序不确定,改为以USB->RJ45 的MAC地址匹配
# 实际上改了内核启动参数 外置的 USB 转网口 不插入的话,肯定 系统的有线 网卡是肯定是 eth0,
# 但是 用USB网卡MAC 配置静态ip有一个好处,有点儿像是 交换机的 管理ip,和其网口不想干
MACAddress=00:0e:c6:b2:0c:92
[Network]
Address=192.168.1.100/24
Address=192.168.2.100/24
Gateway=192.168.1.1
DNS=223.5.5.5#遇到的问题 1
1
2
3apt install -y network-manager
systemctl enable --now NetworkManager
nmtuikickstart, 安装服务器 操作系统
使用USB显示适配器
todo
这是Rocky Linux 10为无头服务器提供的一项非常方便的功能。你无需连接任何显示器,就能通过网络远程完成图形化安装。
工作原理:在安装启动时,通过添加特定的内核参数,安装程序会启动一个RDP服务。你只需从另一台电脑(比如你的主力机)用RDP客户端连接过去,就能看到完整的图形安装界面。
操作方法:
从U盘启动,在GRUB菜单界面按 e 键进入编辑模式。
找到以 linuxefi 或 linux 开头的行,在行末添加以下参数(用户名和密码请自行设定):
bash
inst.rdp inst.rdp.username=你的用户名 inst.rdp.password=你的密码
按 Ctrl+X 启动。
从另一台电脑上,用RDP客户端(Windows自带的“远程桌面连接”即可)连接安装机的IP地址,即可开始图形化安装。
用文本模式安装(最稳妥,无图形界面依赖)
如果RDP不方便,还可以退回到最传统的文本模式安装。这种方式不依赖任何显卡输出,只需要键盘操作即可完成安装。
操作方法:
从U盘启动,在GRUB菜单界面按 e 键进入编辑模式。
在 linuxefi 或 linux 行末添加参数 inst.text。
按 Ctrl+X 启动,即可进入文本安装界面。后续的安装步骤(选择语言、分区、设置网络等)都可以通过键盘方向键和回车来完成。
ARCH
apline
命令行安装 rocky 10 测试
1 | # 挂载(假设根目录挂载到 /mnt/sysimage) |