人生理想,技术交流加Q:411239339

🚀 Ubuntu 24.04 生产力环境“装修”手册:新 SSD 完美调教指南

浏览:26次阅读
没有评论

共计 3003 个字符,预计需要花费 8 分钟才能阅读完成。


宿主机: Ubuntu 24.04

日期: 2026-01-02

核心目标: 打造一个多用户共享、AI 账号隔离、具备“快照后悔药”能力的开发中心。


一、地基篇:LVM 初始化与“架构微调”

LVM 从零到一的“三步走”

1. 遇到问题

新买的 Kingston SSD (/dev/sda) 是一块无法直接使用的“白砖”。我需要把它变成可以动态调整大小、可以随时扩容的“智能磁盘”。

2. 解决方案:LVM 核心创建流程

在 Linux 中,要把物理硬盘调教好,必须按顺序执行以下三个步骤:

第一步:建立物理卷 (PV – Physical Volume)

这是把硬盘“格式化”为 LVM 能认出来的原材料。

sudo wipefs -a /dev/sda       # 第一步:暴力抹除硬盘上的旧分区表(慎用!)sudo pvcreate /dev/sda        # 第二步:把这块盘标记为 LVM 的“生肉”
第二步:建立卷组 (VG – Volume Group)

这是把所有 PV(生肉)扔进一个大池子里,形成一个虚拟的存储空间总和。

Bash

# 建立一个叫 vg_data 的大池子,把 /dev/sda 扔进去
sudo vgcreate vg_data /dev/sda
第三步:建立逻辑卷 (LV – Logical Volume)

从池子里划出一块空间,这才是你真正能挂载、存文件的“虚拟硬盘”。

# 从 vg_data 池子里划出 400G,取名 lv_data
# 为什么要留几十 G 不分完?那是为了留给“快照”当燃料(VFree)sudo lvcreate -L 400G -n lv_data vg_data

# 最后一步:给这块“虚拟硬盘”铺上地毯(格式化文件系统)sudo mkfs.ext4 /dev/vg_data/lv_data
sudo mkdir /data && sudo mount /dev/vg_data/lv_data /data

3. 原理与形象比喻

  • PV (物理卷) ​:就像一捆原始的​钢筋水泥,它本身不能住人。
  • VG (卷组) ​:就像一个​地基 / 工地,你把所有的钢筋水泥(硬盘)都堆在这里。
  • LV (逻辑卷) ​:就像在工地上盖出来的​房间。你可以盖大一点,也可以盖小一点,以后甚至可以再盖一层(扩容)。

1. 遇到问题

  • 初衷: 希望硬盘像“乐高”一样可以随时拼接扩容。
  • 进化需求: 初始建立后发现名字(vg_docker)太窄了,且空间分得太满(100%),没有空间玩“快照”。

2. 解决方案(改名、调优、预留空间)

如果你需要重命名卷组并预留快照位,请执行以下“重塑”操作:

# 1. 重命名卷组 (将专门的 docker 改为通用的 data)
sudo vgrename vg_docker vg_data

# 2. 预留“存档”空间 (不分满,只分 400G,剩下 47G 做积蓄)
sudo lvremove /dev/vg_data/lv_storage     # 删掉旧的
sudo lvcreate -L 400G -n lv_data vg_data  # 建个 400G 的,剩下约 47G VFree 自动留给快照

# 3. 格式化与挂载
sudo mkfs.ext4 /dev/vg_data/lv_data
sudo mount /dev/vg_data/lv_data /data

3. 原理与形象比喻

  • 原理: LVM 在物理硬盘和文件系统间加了“中介层”。
  • 比喻: 物理硬盘是“水桶”,卷组 (VG) 是“蓄水池”,逻辑卷 (LV) 是“水龙头”。
  • 这次优化的精髓: 蓄水池(VG)有 447G,我们只给水龙头(LV)接了 400G 的水管。剩下的 47G 留在池子里不流走,专门用来做“数据备份的墨水”。

二、进阶篇:多用户共享与 AI 账号多开

1. 遇到问题

  • 痛点: 一个人想用多个 AI 账号(如 GitHub Copilot/Cursor)。IDE 默认只能登一个账号,切换极麻烦。

2. 解决方案(Linux 原生隔离 + ACL 权限打通)

  • 多账号隔离: 创建 chin​, qin49​, github​ 三个系统用户。由于 ~/.vscode​ 隔离在各自家目录,每个用户登录不同的 AI 账号,想换账号,只需 SSH 或 Ubuntu 切换用户。
  • 权限打通: 所有人共用 /data 目录。
# 赋予所有用户对 /data 的“递归 + 继承”读写权 (ACL)
sudo setfacl -R -m u:chin:rwx,u:qin49:rwx,u:github:rwx,u:libvirt-qemu:rwx /data
sudo setfacl -R -d -m u:chin:rwx,u:qin49:rwx,u:github:rwx,u:libvirt-qemu:rwx /data

3. 原理与形象比喻

  • 比喻: 办公室里有三个独立工位(系统用户),每个人的电脑登的 AI 账号不同,但大家共用一个巨大的“公共书架”(/data)。

三、避坑篇:Docker/KVM 迁移与“强力拆迁”

1. 遇到问题

  • Docker 镜像和虚拟机动辄几十 GB,必须从 40G 的系统盘搬到新 SSD。
  • 棘手问题: 卸载 /data​ 时提示 Device busy,即便停了 Docker 也没用。

2. 解决方案

  • 迁移配置:

    • Docker: 修改 /etc/docker/daemon.json​ 加入 "data-root": "/data/docker"
    • KVM: virsh pool-edit default​ 指向 /data/vms
  • “强力拆迁”脚本: Docker 的 overlay2 挂载极难清理,需用“懒卸载”:
# 强制杀掉所有死盯着 /data 的进程
sudo fuser -ckm /data

# 循环清理所有残留的隐藏挂载点
grep "/data" /proc/mounts | awk '{print $2}' | xargs -r sudo umount -l

四、后悔药篇:LVM 快照与二次扩容

1. 快照(Snapshot):系统的“存档与读档”

既然我们在第一章预留了 47GVFree 空间,现在可以玩快照了。

  • 存档(拍快照):

    利用我们在 VG 中预留的那 47G 余额:

    # 拍一个名为 snap_01 的照片,允许 10G 的变动量
    sudo lvcreate -L 10G -s -n snap_01 /dev/vg_data/lv_data
  • 读档(回滚):
    注意:必须先 umount /data。

    sudo umount /data
    sudo lvconvert --merge /dev/vg_data/snap_01  # 秒回存档点
    sudo mount /data

2. 二次扩容:以后没空间了怎么办?

如果再买一块 1TB 的新盘(假设为 /dev/sdc):

  1. 初始化: sudo pvcreate /dev/sdc
  2. 扩容池子: sudo vgextend vg_data /dev/sdc
  3. 撑大水管: sudo lvextend -L +800G /dev/vg_data/lv_data
  4. 拉伸地毯: sudo resize2fs /dev/vg_data/lv_data

🛠 终极状态汇总表

目录 物理位置 角色 权限方案
/ NVMe 系统盘 系统骨架 root 管理
/data 新 SSD (LVM: lv_data) 数据中心 ACL (多用户共治)
/data/docker 新 SSD (LVM) 容器引擎 属组 docker
/data/vms 新 SSD (LVM) 虚拟机仓库 属组 libvirt
VFree VG 剩余空间 后悔药能量槽 用于创建快照

💡 老司机心得:

  • VFree 是底气: 永远不要把 VG 分满,留几十 G 空间,你才有机会在系统崩坏前“读档”。
  • ACL 是粘合剂: 它让多用户协作不再有“权限被拒绝”的烦恼。
  • 备份是真理: 虽然有快照,但在进行 LVM 重大结构调整前,务必先 rsync​ 一份数据到 /home 备份!
正文完
创作不易,扫码加点动力
post-qrcode
 0
果较瘦
版权声明:本站原创文章,由 果较瘦 于2026-01-02发表,共计3003字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。