第二章、主机规划与磁盘分区
2.1 Linux与硬件的搭配
认识计算机硬件
在开始学习Linux之前,我们需要了解计算机的基本硬件组成。
主要硬件组件:
查看硬件信息
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)
GPT (GUID Partition Table)
Linux分区命名规则
常用分区工具
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
|
文件系统类型
创建文件系统
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前的规划
分区方案建议
基础方案(新手推荐)
高级方案
swap大小建议
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 最低要求
CentOS 7 推荐配置
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 参考资料与延伸阅读