Debian Linux 根目录 的 目录功能规划

本文详细解释了Debian/Linux系统中的文件系统层次结构,包括各目录的作用及内部组织,帮助用户更好地管理和理解系统文件布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下述是简单的翻译.

  • 注1: 顶级(top-level) 是根目录, 第二层级(Secondary hierarchy)、第三层级(Tertiary hierarchy) 是内容 等同于 "根目录" 分类法 的意思
  • 注2: 内容提到的 FHS 可见: Filesystem Hierarchy Standard
/bin/
  • 给所有使用者必须要的执行命令程式 (ex: cat, ls, cp)
  • (特别是 开机 或者 修复系统需要用到)
/boot/
  • 开机档案 Boot loader, kernels and initrd files.
/dev/
  • 设备档案 devices files, ex :/dev/null
/etc/
  • 系统、程式主要的设定档 (from et cetera)
/home/
  • 使用者的 Home 目录
/lib/
  • 给 /bin/ 和 /sbin/ 必要的 Library.
  • (开机或修复系统必须的 Library)
/lost+found/
  • 在系统(fsck)修复("recovered")期间找到的 一些档案和碎片(Not part of FHS)
/mnt/
  • 暂时/临时 挂载的档案系统
/media/
  • 移除性媒体 (ex: CD-ROMs) 的挂载点 (appeared in FHS-2.3)
/opt/
  • 附加 软件应用程式 Packages
  • 未经编译的, 不是 ".deb" 的二进制档 (是 tar ... 等等的档案) 会放在此目录.
  • /opt/bin/ : 同 最上层(top-level) 的 /bin (Same as for top-level hierarchy)
  • /opt/include/ : Same as for top-level hierarchy
  • /opt/lib/ : Same as for top-level hierarchy
  • /opt/sbin/ : Same as for top-level hierarchy
  • /opt/share/ : Same as for top-level hierarchy
/proc/
  • 将 Kernel 文件化的 虚拟作业系统 和 行程状态(process status), 一般都是文字档案 (ex: uptime, network)
/root/
  • root 帐号的 Home 目录
/sbin/
  • 系统管理者的应用程式 (ex: init, route, ifup) (系统应用程式)
  • (开机 或者 修复系统 需要用到的档案)
/tmp/
  • 暂存盘案
/selinux/
  • SE-Linux 执行运作的设定 (Not part of FHS).
/srv/
  • Site-specific data which is served by the system (Not part of FHS).
/sys/
  • 解开(exporting) Kernel objects 的档案系统.
  • (很多 /proc/* 的档案必须取自此处...)
/usr/
  • 可以公开分享的第二层级(Secondary hierarchy), 唯读的资料 (从前 UNIX source 的档案库(repository), 现在是 UNIX 系统 resources)
  • (这些不会是 开机 或 修复系统必须的档案)
  • /usr/bin/ : Same as for top-level hierarchy
  • /usr/include/ : 标准加载档案
  • /usr/lib/ : Same as for top-level hierarchy
  • /usr/sbin/ : Same as for top-level hierarchy
  • /usr/share/ : 独立系统架构 (可被分享的) 的资料
  • /usr/src/ : Source code (产生 Debian Packages 的 Source code, 参照同: /usr/local/src/)
  • /usr/X11R6/ : X Window System, Version 11 Release 6
  • /usr/local/ : 系统管理者 于 本机安装程式、资料 用的, 属于 第三层级(Tertiary hierarchy).
  • /usr/local/bin : 于本机使用 编译过的二进制档、 Shell script .. 等等.
  • /usr/local/src : Source code (这边放的是不属于 Debian 内含的程式, 而是外部程式 解开 和 编译完成会放于此处.)
/var/
  • 变动性的资料, 像是 Logs, 数据库, 网站, 和 暂存过水(ex: Email) 的 资料.
Debian / Ubuntu Linux 将 /var/run 搬到 /run

Debian Linux 于 Wheezy 版本 Release, 将 /var/run 搬到最顶层 /run (Ubuntu 11.10 亦同).

搬到最顶层的差异, 事实上没什么差别, 只是这篇文章可以让我们对 /run 有更深入的认识~

详见: Release Goals / Run Directory - Debian Wiki - 下述摘录自此篇

/run is a new cross-distribution location for the storage of transient state files—that is, files containing run-time information that may or may not need to be written early in the boot process and which does not require preserving across reboots.

/run is a tmpfs.

 

  • /var/run → /run
  • /var/lock → /run/lock
  • /dev/shm → /run/shm [currently only Debian plans to do this]
  • /tmp → /run/tmp [optional; currently only Debian plans to offer this]

/run also replaces some other locations that have been used for transient files:

  • /lib/init/rw → /run
  • /dev/.* → /run/*
  • /dev/shm/* → /run/*
  • writable files under /etc → /run/*

/run 目前比较常会用到的做个笔记:

  • pid 写到 /run
  • lock 档案可以写到 /run/lock
  • 想丢到 RAM 的暂存资料, 可以先写到 /run/shm
<think>嗯,用户想要在Linux系统根目录下创建LVM逻辑卷管理。这其实是个挺专业的系统管理操作,需要谨慎处理。从用户提问来看,ta应该是个刚开始接触Linux系统管理的学习者,可能正在搭建实验环境。用户提供的引用材料挺全面的,涵盖了LVM的基本概念、操作命令和实际案例。特别是引用[4]详细描述了根目录扩容的完整流程,这对用户的需求很有参考价值。不过要注意这些操作涉及系统核心分区,风险较高,在回答时需要特别强调备份的重要性。考虑到用户是学习目的,我决定把操作拆解成清晰的步骤:首先是物理卷准备,然后是卷组创建,最后才是逻辑卷分配。每个步骤都要配上具体的命令示例,这样用户可以直接跟着操作。比如用pvcreate、vgcreate这些核心命令时,要说明参数含义。在关键风险点要特别标注警告,比如根目录操作可能导致系统无法启动这种情况。还要提醒用户务必在虚拟机或测试机上练习,避免在生产环境直接操作。毕竟数据无价啊。最后按照系统指令要求,需要生成几个相关问题。可以围绕LVM的日常管理场景设计,比如扩容缩容、性能优化这些实用技巧。用户如果掌握了基础创建操作,接下来自然会想了解这些进阶知识。对了,回答里所有技术术语都要保持准确,像"物理卷(PV)"、"卷组(VG)"这些专有名词首次出现时用括号标注英文缩写,方便用户对照查阅文档。数学表达式要严格按$...$格式写,虽然这个场景用到的数学符号不多。</think>在 Linux 根目录下创建 LVM 逻辑卷管理需要谨慎操作,涉及系统分区。以下是详细步骤(**强烈建议先在虚拟机或非生产环境练习并备份重要数据**): ### 📍 核心步骤 1. **准备物理磁盘/分区** * 使用 `fdisk` 或 `parted` 工具在目标磁盘(如 `/dev/sdb`)上创建新分区。 * 将分区类型标记为 `Linux LVM` (类型代码 `8e`)。 * 假设创建了分区 `/dev/sdb1`。 2. **创建物理卷 (PV)** ```bash pvcreate /dev/sdb1 ``` * 验证:`pvdisplay` 或 `pvs` 3. **创建卷组 (VG)** ```bash vgcreate vg_root /dev/sdb1 # 将新 PV 加入名为 vg_root 的卷组 ``` * 验证:`vgdisplay` 或 `vgs` 4. **在卷组中创建逻辑卷 (LV)** ```bash lvcreate -L +20G -n lv_root vg_root # 创建 20G 大小名为 lv_root 的 LV ``` * 验证:`lvdisplay` 或 `lvs` 5. **在逻辑卷上创建文件系统** ```bash mkfs.xfs /dev/vg_root/lv_root # 推荐使用 XFS 或 ext4 # 或 mkfs.ext4 /dev/vg_root/lv_root ``` 6. **挂载新逻辑卷到临时目录并复制根目录数据** ```bash mkdir /mnt/newroot mount /dev/vg_root/lv_root /mnt/newroot rsync -aAXv / /mnt/newroot/ # 递归复制根目录所有内容,保留属性 ``` 7. **修改 GRUB 配置和 fstab** * **chroot 准备:** ```bash mount --bind /proc /mnt/newroot/proc mount --bind /dev /mnt/newroot/dev mount --bind /sys /mnt/newroot/sys mount --bind /run /mnt/newroot/run chroot /mnt/newroot ``` * **更新 initramfs:** ```bash dracut -f /boot/initramfs-$(uname -r).img $(uname -r) # 对于 RHEL/CentOS/Rocky # 或 update-initramfs -u # 对于 Debian/Ubuntu ``` * **修改 `/etc/fstab`:** 找到旧的根分区(如 `/dev/mapper/oldvg-oldlv` 或 `/dev/sda2`),将其替换为新 LV 的路径 `/dev/mapper/vg_root-lv_root` 或 UUID(用 `blkid` 获取)。 * **更新 GRUB:** ```bash grub2-mkconfig -o /boot/grub2/grub.cfg # 对于 GRUB2 (RHEL系) # 或 update-grub # 对于 Debian/Ubuntu ``` * **退出 chroot:** 按 `Ctrl+D` 或输入 `exit`。 8. **重启并验证** * 卸载临时挂载点: ```bash umount /mnt/newroot/{proc,dev,sys,run} umount /mnt/newroot ``` * **重启系统:** `reboot` * 重启后登录,运行 `df -h /` 和 `lsblk` 检查根目录是否已挂载在新的 LVM 逻辑卷上。 ### ⚠️ 关键注意事项 1. **备份!备份!备份!**:操作前必须备份整个系统或重要数据。误操作可能导致系统无法启动或数据丢失[^4]。 2. **理解风险**:此操作直接修改系统根分区,是高级操作。务必在测试环境验证成功后再在生产环境尝试。 3. **空间规划**:确保新 LV (`lv_root`) 分配的空间足够容纳当前根目录数据并有适当余量。 4. **文件系统类型**:使用与原有根分区一致的文件系统类型(通常是 XFS 或 ext4)可减少兼容性问题。 5. **GRUB 兼容性**:确保 GRUB 版本支持从 LVM 启动。现代发行版通常都支持。 6. **虚拟机优先**:强烈建议在虚拟机中完整练习整个流程数次,熟悉所有命令和潜在问题点[^4]。 ### 📚 引用说明 > 上述步骤综合了 LVM 管理的基本原理[^2][^3]以及根目录迁移至 LVM 的关键操作流程[^4],强调了数据备份和测试环境验证的极端重要性[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值