Linux文件系统自定义配置指南
根据场景选择合适的文件系统是自定义配置的基础:
挂载选项直接影响文件系统的性能和安全性,分为临时挂载和永久挂载:
mount命令的-o参数指定选项,如:mount -t ext4 -o noatime,nosuid /dev/sda1 /mnt # 禁用访问时间更新和SUID权限
/etc/fstab文件(格式:设备 挂载点 类型 选项 dump pass),例如:/dev/sda1 /mnt ext4 defaults,noatime,nosuid 0 2 # 开机自动挂载并应用选项
noatime:禁用文件访问时间更新,减少磁盘I/O;nodiratime:禁用目录访问时间更新;relatime:仅在访问时间早于修改时间时更新,平衡性能与功能;ro/rw:只读/读写模式;nosuid:忽略SUID/SGID权限,提升安全性;sync/async:同步/异步写入,sync更安全但性能低。权限控制是文件系统安全的核心,包括权限修改、属主/属组调整和默认权限设置:
ls -l命令,例如:ls -l test.txt # 输出:-rw-r--r-- 1 root root 0 Jan 1 10:00 test.txt
其中,-rw-r--r--表示所有者(root)有读写权限,所属组(root)和其他人有读权限。u(所有者)、g(所属组)、o(其他人)表示对象,+(添加)、-(删除)、=(设置)权限,例如:chmod u+x test.txt # 给所有者添加执行权限
chmod go-r test.txt # 删除所属组和其他人的读权限
chmod 764 test.txt # 所有者:rwx(4+2+1=7),所属组:rw-(4+2=6),其他人:r--(4)
chown:修改属主或属主+属组,例如:chown root:test.txt # 修改属主为root
chown root:admins test.txt # 修改属主为root,属组为admins
chgrp:仅修改属组,例如:chgrp admins test.txt # 修改属组为admins
umask 022 # 新建文件权限为644(666-022),目录权限为755(777-022)
可通过umask命令查看当前值,修改~/.bashrc或/etc/profile使其永久生效。LVM允许动态调整磁盘空间,适合需要灵活存储的场景:
pvcreate /dev/sda1 # 将/dev/sda1创建为PV
vgcreate my_vg /dev/sda1 # 创建名为my_vg的VG,包含/dev/sda1
lvcreate -L 10G -n my_lv my_vg # 创建10GB的LV,名为my_lv,属于my_vg
mkfs.ext4 /dev/my_vg/my_lv # 格式化LV为ext4
mount /dev/my_vg/my_lv /mnt # 挂载到/mnt
lvextend -L +5G /dev/my_vg/my_lv # 扩展LV 5GB
resize2fs /dev/my_vg/my_lv # 调整文件系统大小(ext4)
RAID通过磁盘阵列提升性能或可靠性,常见级别:
创建RAID 1示例:
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 # 创建RAID 1设备
mkfs.ext4 /dev/md0 # 格式化
mount /dev/md0 /mnt # 挂载
保存RAID配置:创建/etc/mdadm.conf文件,记录RAID信息:
mdadm --detail --scan >> /etc/mdadm.conf
btrfs subvolume snapshot /mnt /mnt_snapshot # 创建/mnt的快照
xfs_quota -x -c 'limit bsoft=10G bhard=15G user1' /mnt # 为用户1设置软限制10G、硬限制15G
/etc/fstab添加discard选项:/dev/sda1 /mnt ext4 defaults,discard 0 2