第二章、主机规划与磁盘分区
2.1 Linux与硬件的搭配
认识计算机硬件
在开始学习Linux之前,我们需要了解计算机的基本硬件组成。
主要硬件组件:
| 组件 |
功能 |
Linux中的设备名 |
| CPU |
中央处理器,执行指令 |
/proc/cpuinfo |
| 内存 (RAM) |
临时存储运行中的程序和数据 |
/proc/meminfo |
| 硬盘 |
永久存储数据 |
/dev/sda, /dev/nvme0n1 |
| 主板 |
连接所有组件 |
- |
| 显卡 |
图形处理 |
/dev/fb0 |
| 网卡 |
网络连接 |
/dev/eth0, /dev/wlan0 |
| 电源 |
供电 |
- |
查看硬件信息
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
| cat /proc/cpuinfo lscpu
cat /proc/meminfo free -h lsmem
lsblk fdisk -l parted -l ls -l /dev/sd* /dev/nvme*
lspci lspci | grep -i vga lspci | grep -i net
lsusb
dmidecode dmidecode -t memory dmidecode -t processor
uname -a hostnamectl
|
2.2 磁盘分区
为什么要分区
磁盘分区的主要目的:
- 安全性:系统和个人数据分开,重装系统不影响数据
- 便利性:不同类型数据分类存放
- 效率:按需分配空间,避免浪费
- 性能:将频繁访问的数据放在磁盘快速区域
分区表类型
MBR (Master Boot Record)
| 特性 |
说明 |
| 最大磁盘容量 |
2TB |
| 最大主分区数 |
4个 |
| 扩展分区 |
1个(占用主分区名额) |
| 逻辑分区 |
扩展分区内可创建多个 |
| 分区信息存储 |
主引导扇区(512字节) |
GPT (GUID Partition Table)
| 特性 |
说明 |
| 最大磁盘容量 |
18EB(实际受限于操作系统) |
| 最大分区数 |
128个(Windows默认) |
| 主分区/扩展分区 |
没有这种限制,都是主分区 |
| 分区信息存储 |
磁盘头部和尾部(备份) |
| 兼容性 |
UEFI启动模式 |
Linux分区命名规则
| 设备类型 |
命名规则 |
示例 |
| SATA/SCSI硬盘 |
/dev/sd[a-z] |
/dev/sda, /dev/sdb |
| NVMe SSD |
/dev/nvme[0-9]n[1-9] |
/dev/nvme0n1 |
| 虚拟设备 |
/dev/vd[a-z] |
/dev/vda (虚拟机) |
| 分区 |
设备名+数字 |
/dev/sda1, /dev/nvme0n1p1 |
| 光驱 |
/dev/sr0 或 /dev/cdrom |
/dev/sr0 |
常用分区工具
fdisk (MBR分区)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| fdisk -l fdisk -l /dev/sda
fdisk /dev/sda
|
gdisk / cgdisk (GPT分区)
1 2 3 4 5 6 7 8 9 10 11 12 13
| gdisk /dev/sda
gdisk交互命令(类似fdisk):
|
parted (MBR和GPT都支持)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| parted -l parted /dev/sda print
parted /dev/sda
parted /dev/sda mklabel gpt parted /dev/sda mkpart primary ext4 1MiB 100GiB parted /dev/sda mkpart primary linux-swap 100GiB 104GiB parted /dev/sda resizepart 1 200GiB parted /dev/sda rm 2 parted /dev/sda set 1 boot on
|
lsblk / blkid
1 2 3 4 5 6 7 8
| lsblk lsblk -f lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL
blkid blkid /dev/sda1
|
文件系统类型
| 文件系统 |
特点 |
适用场景 |
| ext4 |
稳定、性能好、广泛使用 |
Linux系统分区、数据分区 |
| xfs |
高性能、大容量、扩展性好 |
大数据、日志系统 |
| btrfs |
现代、快照、压缩、多设备 |
桌面、开发环境 |
| swap |
交换分区 |
内存扩展 |
| vfat/fat32 |
兼容性好 |
UEFI启动分区、可移动设备 |
| ntfs |
Windows兼容 |
双系统数据共享 |
创建文件系统
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| mkfs.ext4 /dev/sda1 mkfs.ext4 -L "Data" /dev/sda2
mkfs.xfs /dev/sdb1
mkfs.vfat -F 32 /dev/sdc1
mkswap /dev/sda3 swapon /dev/sda3 swapoff /dev/sda3
dumpe2fs /dev/sda1 tune2fs -l /dev/sda1 xfs_info /dev/sdb1
|
挂载文件系统
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 32 33 34 35 36 37 38 39 40
| mount /dev/sda1 /mnt/data mount -t ext4 /dev/sda1 /mnt/data mount -o rw,noatime /dev/sda1 /mnt/data
-o ro -o rw -o noatime -o nodiratime -o sync -o async -o remount -o bind
mount cat /proc/mounts df -h df -hT lsblk -f
umount /mnt/data umount /dev/sda1 umount -l /mnt/data
cat /etc/fstab
mount -a --dry-run
findmnt --verify
|
2.3 安装Linux前的规划
分区方案建议
基础方案(新手推荐)
| 分区 |
大小 |
文件系统 |
说明 |
| /boot |
1GB |
ext4 |
启动分区,UEFI需要EFI分区 |
| / |
50GB+ |
ext4 |
根分区,系统和软件 |
| /home |
剩余空间 |
ext4 |
用户数据 |
| swap |
4-8GB |
swap |
交换分区,或使用swap文件 |
高级方案
| 分区 |
大小 |
文件系统 |
说明 |
| /boot/efi |
512MB |
vfat |
UEFI启动分区 |
| /boot |
1GB |
ext4 |
传统启动文件 |
| / |
30GB |
ext4/xfs |
根分区 |
| /var |
20GB+ |
ext4/xfs |
日志和缓存 |
| /var/log |
10GB+ |
ext4 |
日志文件 |
| /home |
剩余空间 |
ext4/xfs |
用户数据 |
| /opt |
视需要 |
ext4 |
第三方软件 |
| /tmp |
10GB+ |
ext4 |
临时文件,或使用tmpfs |
| swap |
4-16GB |
swap |
根据内存大小决定 |
swap大小建议
| 内存大小 |
推荐swap大小 |
说明 |
| < 4GB |
2-4GB |
内存小,需要较大swap |
| 4-8GB |
2-4GB |
正常使用 |
| 8-16GB |
2-4GB |
或根据需要调整 |
| 16-32GB |
4-8GB |
或使用swap文件 |
| > 32GB |
4GB或禁用 |
根据使用情况决定 |
swap文件替代分区:
1 2 3 4 5 6 7 8
| sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
|
系统要求
CentOS 7 最低要求
| 项目 |
要求 |
| CPU |
1 GHz 或更高 |
| 内存 |
1 GB (建议 2 GB+) |
| 硬盘 |
20 GB 可用空间 |
| 网络 |
以太网或无线网卡 |
CentOS 7 推荐配置
| 项目 |
推荐 |
| CPU |
2核或以上 |
| 内存 |
4 GB 或更多 |
| 硬盘 |
50 GB SSD 或更大 |
| 网络 |
千兆以太网 |
2.4 重点回顾
- 硬件认知:了解CPU、内存、硬盘等关键硬件及其Linux设备名
- 分区必要性:安全性、便利性、效率、性能
- 分区表类型:
- MBR:最大2TB,4个主分区
- GPT:最大18EB,128个分区,需要UEFI
- 分区命名:/dev/sda1(SATA)、/dev/nvme0n1p1(NVMe)
- 分区工具:fdisk(MBR)、gdisk(GPT)、parted(两者)
- 文件系统:ext4(通用)、xfs(大容量)、swap(交换)
- 分区方案:建议至少/、/home、swap三个分区
- swap大小:根据内存大小,一般2-4GB或更大
- 挂载点:分区必须挂载到目录树才能使用
- fstab:/etc/fstab配置开机自动挂载
2.5 本章习题
解释MBR和GPT分区表的主要区别。你的电脑使用哪种分区表?
Linux中SATA硬盘和NVMe SSD的设备名分别是什么格式?
为什么要进行磁盘分区?至少列出3个理由。
使用fdisk或parted查看你当前系统的分区表,并解释每个分区的作用。
为一个8GB内存、500GB硬盘的服务器设计分区方案,要求有/、/home、/var、swap分区。
解释swap分区的作用。如果系统有16GB内存,你建议swap设置多大?
如何在Linux中查看硬盘UUID?UUID在fstab中有什么作用?
实践:使用fdisk或gdisk创建一个测试分区,然后格式化为ext4并挂载到/mnt/test。
2.6 参考资料与延伸阅读