Linux文件系统基本管理

张开发
2026/4/12 18:03:37 15 分钟阅读

分享文章

Linux文件系统基本管理
文件系统基本管理# 提前准备好分区/dev/sdb1、/dev/sdb2[rootcentos7 ~11:35:10]# lsblk /dev/sdbNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb8:16020G0disk ├─sdb18:1705G0part └─sdb28:18010G0part文件系统格式化硬盘分区不能直接使用需要格式化成相应的文件系统ext4、xfs才能存储文件。# 将sdb1格式化为ext4[rootcentos7 ~11:35:21]# mkfs.ext4 /dev/sdb1mke2fs1.42.9(28-Dec-2013)FilesystemlabelOS type: Linux Blocksize4096(log2)Fragmentsize4096(log2)Stride0blocks, Stripewidth0blocks327680inodes,1310720blocks65536blocks(5.00%)reservedforthe super user First datablock0Maximum filesystemblocks134217728040blockgroups32768blocks per group,32768fragments per group8192inodes per group Superblock backups stored on blocks:32768,98304,163840,229376,294912,819200,884736Allocating group tables:doneWriting inode tables:doneCreating journal(32768blocks):doneWriting superblocks and filesystem accounting information:done# 将sdb2格式化为xfs[rootcentos7 ~11:50:05]# mkfs.xfs /dev/sdb2meta-data/dev/sdb2isize512agcount4,agsize655360blkssectsz512attr2,projid32bit1crc1finobt0,sparse0databsize4096blocks2621440,imaxpct25sunit0swidth0blks namingversion2bsize4096ascii-ci0ftype1loginternal logbsize4096blocks2560,version2sectsz512sunit0blks, lazy-count1realtimenoneextsz4096blocks0,rtextents0文件系统挂载硬盘挂载之后才能使用类似于windows中分配盘符C盘。示例1挂载/dev/sdb1给web应用使用# 准备挂载点目录[rootcentos7 ~11:50:47]# mkdir /mnt/web# 挂载/dev/sdb1到/mnt/web后续写入分区sdb1的数据通过路径/mnt/web引用。[rootcentos7 ~11:52:57]# mount /dev/sdb1 /mnt/web# 查看设备和挂载点关系[rootcentos7 ~11:53:35]# df -h /mnt/webFilesystem Size Used Avail Use% Mounted on /dev/sdb14.8G 20M4.6G1% /mnt/web# 写入测试[rootcentos7 ~11:53:40]# echo Hello World /mnt/web/test.txt[rootcentos7 ~11:53:40]# cat /mnt/web/web.txtHello World# 此时文件/mnt/web/test.txt存储到sdb1中。示例2挂载/dev/sdb2给db应用使用[rootcentos7 ~ 09:40:16]# mkdir /mnt/db[rootcentos7 ~ 09:45:32]# mount /dev/sdb2 /mnt/db[rootcentos7 ~ 09:46:37]# df -h /mnt/dbFilesystem Size Used Avail Use% Mounted on /dev/sdb2 10G 33M 10G1% /mnt/db[rootcentos7 ~ 09:46:44]# echo Hello mysql /mnt/db/db.txt[rootcentos7 ~ 09:47:07]# cat /mnt/db/db.txtHello mysql部署 web 服务器web 服务器提供web页面分享提供一些动态网站例如购物。部署服务流程安装相关软件包准备相关材料配置服务启用并启动服务设置防火墙客户端访问测试# 1. 安装相关软件包[rootcentos7 ~13:41:47]# yum install -y nginx# 2. 准备相关材料# 使用/mnt/web 作为网站的根目录[rootcentos7 ~13:42:06]# echo Hello World From Nginx /mnt/web/index.html# 3. 配置服务[rootcentos7 ~13:54:39]# cp /etc/nginx/nginx.conf /etc/nginx/conf.d/vhost-www.sjw.cloud.conf[rootcentos7 ~13:55:16]# vim /etc/nginx/conf.d/vhost-www.sjw.cloud.confserver{server_name www.sjw.cloud;root /mnt/web;}# 4. 启用并启动服务[rootcentos7 ~13:59:04]# systemctl enable nginx --nowCreated symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.# 5. 设置防火墙[rootcentos7 ~14:00:03]# systemctl stop firewalld# 6. 客户端访问测试[rootcentos7 ~14:00:12]# vim /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6# 增加域名解析10.1.8.10 www.sjw.cloud www# 如果是windows访问则修改C:\Windows\System32\drivers\etc\hosts也添加相应记录[rootcentos7 ~14:01:47]# curl http://www.sjw.cloud/Hello World From Nginx文件系统卸载文件系统不使用的时候可以卸载取消目录和设备之间的映射关系。[rootcentos7 ~14:40:00]# lsblk /dev/sdbNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb8:16020G0disk ├─sdb18:1705G0part /mnt/web └─sdb28:18010G0part /mnt/db# 卸载挂载点[rootcentos7 ~14:40:24]# umount /mnt/db[rootcentos7 ~14:41:00]# lsblk /dev/sdb2NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb28:18010G0part换一种方式挂载和卸载# 查看设备id[rootcentos7 ~14:41:50]# blkid /dev/sdb2/dev/sdb2:UUID498f1348-d42c-46f6-b0e9-98fbaf6ecc74TYPExfsPARTLABELLinux filesystemPARTUUID873ddd97-be32-46ae-9139-3b3ccb43a418# 可以使用以下任意一种方式表达设备- /dev/sdb2 -UUIDedd9b435-5c20-46a8-9a1b-adce611e64c7-PARTLABELLinux filesystem-PARTUUID695ac164-8e69-408f-bdfb-6b444bc49e3e# 使用 UUID 挂载[rootcentos7 ~14:37:23]# mount UUIDedd9b435-5c20-46a8-9a1b-adce611e64c7 /mnt/db[rootcentos7 ~14:37:50]# lsblk /dev/sdb2NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb28:18010G0part /mnt/db# 通过设备名称卸载[rootcentos7 ~14:38:39]# umount /dev/sdb2[rootcentos7 ~14:38:56]# lsblk /dev/sdb2NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb28:18010G0part文件系统卸载失败模拟占用[rootcentos7 ~14:53:16]# tail -f /mnt/web/index.html [1]27019卸载文件系统报错:target is busy.[rootcentos7 ~14:59:14]# umount /mnt/webumount: /mnt/web: target is busy.(In some cases useful info about processes that use the device is found by lsof(8)or fuser(1))找到使用设备的进程[rootcentos7 ~14:44:19]# yum install -y lsof# 参数是挂载点[rootcentos7 ~14:59:47]# lsof /mnt/web/COMMAND PIDUSERFD TYPE DEVICE SIZE/OFF NODE NAMEtail27019root 3r REG8,172313/mnt/web/index.html# tail 读取文件内容# 如果是写入程序关闭程序的时候考虑带来的影响。优雅退出进程或者使用kill关闭进程[rootcentos7 ~15:00:49]# kill -15 27019# 再次卸载不报错了。[rootcentos7 ~15:02:30]# umount /mnt/web持久化挂载计算机重启后文件系统自动挂载。/etc/fstab存储了系统自动挂载设备清单。[rootcentos7 ~16:04:08]# cat /etc/fstab## /etc/fstab# Created by anaconda on Fri Apr 3 14:10:48 2026## Accessible filesystems, by reference, are maintained under /dev/disk# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#/dev/mapper/centos-root / xfs defaults00UUIDe3d83825-1a0b-49aa-9388-d8f1b6cb16ad /boot xfs defaults00/dev/mapper/centos-home /home xfs defaults00/dev/mapper/centos-swap swap swap defaults00设置/dev/sdb1 自动挂载到 /mnt/web[rootcentos7 ~15:52:23]# cp /etc/fstab /etc/fstab-0408[rootcentos7 ~15:53:15]# vim /etc/fstab# 最后添加/dev/sdb1 /mnt/web ext4 defaults00条目参数说明/dev/sdb1挂载的设备/mnt/web设备挂载点ext4设备的文件系统defaults挂载选项用于控制文件系统属性例如defaults改为ro则文件系统只能读readonly0是否备份现在已弃用可用之为0或者10文件系统监测顺序值越小越优先检查。基本不用重启测试。[rootcentos7 ~16:17:16]# lsblk /dev/sdbNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb8:16020G0disk ├─sdb18:1705G0part /mnt/web └─sdb28:18010G0part如果/etc/fstab中具备相应条目则挂载文件系统的时候只需要写一个名称。[rootcentos7 ~15:58:12]# umount /mnt/web[rootcentos7 ~16:00:04]# mount /mnt/web[rootcentos7 ~16:00:30]# df -h /mnt/webFilesystem Size Used Avail Use% Mounted on /dev/sdb14.8G 21M4.6G1% /mnt/web

更多文章