温馨提示×

ubuntu fromscratch为何启动慢

小樊
37
2026-10-13 07:47:52
栏目: 智能运维

“Ubuntu From Scratch”(UFW,或一般指从零自己构建的 Ubuntu 风格系统)启动慢,通常不是 Ubuntu 本身的问题,而是你构建方式或系统配置不完整导致的。下面按常见原因逐一说明。


一、最常见原因

1. 缺少或错误配置 initramfs

如果你是自己用 debootstrap 构建的:

  • 没生成 initrd.img
  • initramfs 中缺少磁盘驱动(如 ahci, nvme, ext4)
  • mkinitramfs 参数错误

现象:

  • 卡在 Loading initial ramdisk
  • 或进入 initramfs shell

✅ 解决:

update-initramfs -c -k all

2. 文件系统驱动未编译进内核或 initramfs

特别是用自定义内核时:

  • ext4 被编成模块但没进 initramfs
  • root 分区是 btrfs / xfs 但没支持

✅ 检查:

ls /lib/modules/$(uname -r)/kernel/fs

3. 没有正确的 /etc/fstab

错误示例:

UUID=xxxx / ext4 defaults 0 1

但:

  • UUID 写错
  • 磁盘还没起来(如 LVM、加密)

✅ 启动会卡在:

A start job is running for /dev/disk/by-uuid/...

(默认 90 秒)


4. systemd 等待网络或设备

From Scratch 系统常忘记:

  • 没装 systemd-networkd
  • 配置了不存在的网卡
  • 启用了 network-online.target

✅ 查看:

systemd-analyze blame
systemd-analyze critical-chain

5. 缺少 udev 或 systemd-udevd 没启动

后果:

  • 磁盘识别慢
  • 设备节点生成延迟

✅ 确保安装:

apt install udev

6. 没有配置 swap 或 swap 错误

  • fstab 中写了 swap 但设备不存在
  • systemd 会等待超时

二、如何快速定位慢在哪

1️⃣ 看启动耗时

systemd-analyze

2️⃣ 看最慢的服务

systemd-analyze blame

3️⃣ 看关键路径

systemd-analyze critical-chain

4️⃣ 开机加参数看详情

GRUB 加:

systemd.log_level=debug

三、From Scratch 常见“漏装”清单

很多慢是基础组件没装:

apt install \
  linux-image-generic \
  initramfs-tools \
  systemd \
  systemd-sysv \
  udev \
  netplan.io \
  dbus

四、如果你的“From Scratch”是指 LFS

那启动慢通常是:

  • 没用 systemd 或用了错误 init
  • 没配置 /etc/inittab
  • 内核没开 CONFIG_DEVTMPFS

总结一句话

Ubuntu From Scratch 启动慢,90% 是 initramfs / fstab / systemd / 驱动 没配好,不是 Ubuntu 慢。

如果你愿意,可以贴:

  • 启动卡在哪一行
  • systemd-analyze blame 输出
  • 你是 debootstrap 还是 LFS

我可以直接帮你精准定位。

0 踩