IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux挂载点是否可以是软链接测试实验 -> 正文阅读

[系统运维]Linux挂载点是否可以是软链接测试实验

挂载点可以是目录众所周知,挂载点可不可以是软连接呢?

mount挂载点实验

测试环境

- OS:CentOS 8
- mount from util-linux 2.32.1 (libmount 2.32.1: selinux, btrfs, debug)

新添加磁盘一个

  • 虚拟机新添加磁盘一个
    新加磁盘

分区并建立文件系统

  • 习惯创建逻辑卷取代传统fdisk分区方式
    pvcreate /dev/sdb&&vgcreate mvg /dev/sdb && lvcreate -l +100%FREE -n mlv mvg&&lsblk
[root@C8-196 ~]# pvcreate /dev/sdb&&vgcreate mvg /dev/sdb && lvcreate -l +100FREE -n mlv mvg&&lsblk 
  Physical volume "/dev/sdb" successfully created.
  Volume group "mvg" successfully created
  Invalid argument for --extents: +100FREE
  Error during parsing of command line.
[root@C8-196 ~]# pvcreate /dev/sdb&&vgcreate mvg /dev/sdb && lvcreate -l +100%FREE -n mlv mvg&&lsblk 
  Can't initialize physical volume "/dev/sdb" of volume group "mvg" without -ff
  /dev/sdb: physical volume not initialized.
[root@C8-196 ~]# lvcreate -l +100%FREE -n mlv mvg&&lsblk 
  Logical volume "mlv" created.
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  200G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0  199G  0 part 
  ├─cl-root 253:0    0   70G  0 lvm  /
  ├─cl-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cl-home 253:2    0  127G  0 lvm  /home
sdb           8:16   0    5G  0 disk 
└─mvg-mlv   253:3    0    5G  0 lvm  
  • 建立文件系统
[root@C8-196 ~]# ll /dev/mapper/mvg-mlv 
lrwxrwxrwx 1 root root 7 Mar 31 18:52 /dev/mapper/mvg-mlv -> ../dm-3
[root@C8-196 ~]# mkfs.xfs /dev/mapper/mvg-mlv 
meta-data=/dev/mapper/mvg-mlv    isize=512    agcount=4, agsize=327424 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=1309696, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

创建目录挂载点并挂载

  • 正常挂载目录成功
[root@C8-196 ~]# mkdir -pv /mtest/mdir && mount /dev/mapper/mvg-mlv !$&&df -Th
mkdir -pv /mtest/mdir && mount /dev/mapper/mvg-mlv /dev/mapper/mvg-mlv&&df -Th
mkdir: created directory '/mtest'
mkdir: created directory '/mtest/mdir'
mount: /dev/mapper/mvg-mlv: mount point is not a directory.
[root@C8-196 ~]# mount /dev/mapper/mvg-mlv /mtest/mdir&&df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  876M     0  876M   0% /dev
tmpfs               tmpfs     896M     0  896M   0% /dev/shm
tmpfs               tmpfs     896M   17M  879M   2% /run
tmpfs               tmpfs     896M     0  896M   0% /sys/fs/cgroup
/dev/mapper/cl-root xfs        70G  2.3G   68G   4% /
/dev/mapper/cl-home xfs       127G  939M  126G   1% /home
/dev/sda1           xfs      1014M  197M  818M  20% /boot
tmpfs               tmpfs     180M     0  180M   0% /run/user/0
/dev/mapper/mvg-mlv xfs       5.0G   68M  5.0G   2% /mtest/mdir
  • umount掉吧
[root@C8-196 ~]# mount /dev/mapper/mvg-mlv /mtest/mdir&&df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  876M     0  876M   0% /dev
tmpfs               tmpfs     896M     0  896M   0% /dev/shm
tmpfs               tmpfs     896M   17M  879M   2% /run
tmpfs               tmpfs     896M     0  896M   0% /sys/fs/cgroup
/dev/mapper/cl-root xfs        70G  2.3G   68G   4% /
/dev/mapper/cl-home xfs       127G  939M  126G   1% /home
/dev/sda1           xfs      1014M  197M  818M  20% /boot
tmpfs               tmpfs     180M     0  180M   0% /run/user/0
/dev/mapper/mvg-mlv xfs       5.0G   68M  5.0G   2% /mtest/mdir
[root@C8-196 ~]# umount /mtest/mdir && lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  200G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0  199G  0 part 
  ├─cl-root 253:0    0   70G  0 lvm  /
  ├─cl-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cl-home 253:2    0  127G  0 lvm  /home
sdb           8:16   0    5G  0 disk 
└─mvg-mlv   253:3    0    5G  0 lvm  

对目录创建一个软连接并尝试挂载

  • 创建一个软连接
[root@C8-196 ~]# ln -s /mtest/mdir /mtest/ldir && ll /mtest/
total 0
lrwxrwxrwx 1 root root 11 Mar 31 19:05 ldir -> /mtest/mdir
drwxr-xr-x 2 root root 18 Mar 31 19:01 mdir
  • 挂载逻辑卷到这个软链接上
[root@C8-196 ~]# mount /dev/mapper/mvg-mlv /mtest/ldir
[root@C8-196 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  200G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0  199G  0 part 
  ├─cl-root 253:0    0   70G  0 lvm  /
  ├─cl-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cl-home 253:2    0  127G  0 lvm  /home
sdb           8:16   0    5G  0 disk 
└─mvg-mlv   253:3    0    5G  0 lvm  /mtest/mdir
[root@C8-196 ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  876M     0  876M   0% /dev
tmpfs               tmpfs     896M     0  896M   0% /dev/shm
tmpfs               tmpfs     896M   17M  879M   2% /run
tmpfs               tmpfs     896M     0  896M   0% /sys/fs/cgroup
/dev/mapper/cl-root xfs        70G  2.3G   68G   4% /
/dev/mapper/cl-home xfs       127G  939M  126G   1% /home
/dev/sda1           xfs      1014M  197M  818M  20% /boot
tmpfs               tmpfs     180M     0  180M   0% /run/user/0
/dev/mapper/mvg-mlv xfs       5.0G   68M  5.0G   2% /mtest/mdir
  • 很显然挂载到了原来的目录上

总结

  1. 软链接可以作为挂载点
  2. 通过软链接进行挂载会直接挂载到链接到的原始目录
  • 也就是说用软链接当作挂载点就和直接挂载原始目录是一样一样的
  • 还记得删除软链接导致原始目录的数据被删除的例子么?

删除测试

  1. 我们首先在原目录中创建一些测试文件
[root@C8-196 ~]# touch /mtest/ldir/{1..5}.log&&ll /mtest/mdir/
total 0
-rw-r--r-- 1 root root 0 Mar 31 19:14 1.log
-rw-r--r-- 1 root root 0 Mar 31 19:14 2.log
-rw-r--r-- 1 root root 0 Mar 31 19:14 3.log
-rw-r--r-- 1 root root 0 Mar 31 19:14 4.log
-rw-r--r-- 1 root root 0 Mar 31 19:14 5.log
  1. 使用rm删除软链接的错误方式–使用table补齐
  • 我们常常习惯使用table补齐,这使操作变得简单,同时也带来风险
  • 在使用rm -rf试图删除软链接ldir的时候,table补齐使这个操作变成了灾难
  • rm -rf /mtest/ldir/ 会删除原始目录下的所有文件,如果这是生产数据,你就可以去死了
[root@C8-196 ~]# ll /mtest/
total 0
lrwxrwxrwx 1 root root 11 Mar 31 19:05 ldir -> /mtest/mdir
drwxr-xr-x 2 root root 71 Mar 31 19:14 mdir
[root@C8-196 ~]# rm -rf /mtest/ldir/
[root@C8-196 ~]# ll /mtest/
total 0
lrwxrwxrwx 1 root root 11 Mar 31 19:05 ldir -> /mtest/mdir
drwxr-xr-x 2 root root  6 Mar 31 19:16 mdir
[root@C8-196 ~]# ll /mtest/mdir/
total 0
  1. 正确删除软链接的姿势
  • 要删除的目录后不带 /
  • 不要使用-rf参数
[root@C8-196 ~]# ll /mtest/
total 0
lrwxrwxrwx 1 root root 11 Mar 31 19:05 ldir -> /mtest/mdir
drwxr-xr-x 2 root root  6 Mar 31 19:16 mdir
[root@C8-196 ~]# rm /mtest/ldir
rm: remove symbolic link '/mtest/ldir'? y
[root@C8-196 ~]# ll /mtest/
total 0
drwxr-xr-x 2 root root 6 Mar 31 19:16 mdir
  • 而且直接删除已挂载的挂载点是被禁止的
[root@C8-196 ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  876M     0  876M   0% /dev
tmpfs               tmpfs     896M     0  896M   0% /dev/shm
tmpfs               tmpfs     896M   17M  879M   2% /run
tmpfs               tmpfs     896M     0  896M   0% /sys/fs/cgroup
/dev/mapper/cl-root xfs        70G  2.3G   68G   4% /
/dev/mapper/cl-home xfs       127G  939M  126G   1% /home
/dev/sda1           xfs      1014M  197M  818M  20% /boot
tmpfs               tmpfs     180M     0  180M   0% /run/user/0
/dev/mapper/mvg-mlv xfs       5.0G   68M  5.0G   2% /mtest/mdir
[root@C8-196 ~]# rm -rf /mtest/mdir/
rm: cannot remove '/mtest/mdir/': Device or resource busy
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:49:45  更:2022-04-01 23:50:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:36:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码