Linux 文件存储在哪个磁盘

逻辑磁盘(分区)可以挂载到任意路径。

img


当前出现5个挂载点

分区 挂载点
centos-root /
sda1 /boot
sdb1 /b1
sdb2 /b2
sdb3 /b3

创建文件或文件夹时,如果匹配最近的路径,则存储在相应的分区。


例1:平级挂载点路径

/b1/file1.txt匹配到/b1,会放到sdb1

/b2/file2.txt 匹配到/b2,会放到sdb2

/b3/b1/file3.txt 还是匹配到/b3,会放到sdb3


测试

echo file1111 > /b1/file1.txt
echo file2222 > /b2/file2.txt
mkdir /b3/b2
echo file3333 > /b3/b2/file3.txt

用df命令分别查看3个文件所在分区

df /b1/file1.txt
df /b2/file2.txt
df /b3/b2/file3.txt

结果如下

img


例2:上下级挂载点路级

系统挂载点中/属于上级挂载点,其它属于下级挂载点,会首先匹配下级挂载点,如果匹配则使用相应分区。

我们现在构建一个类似的上下级路径关系。


现在将/dev/sdb2挂载到/b3/b2路径。

首先取消原有挂载

umount /dev/sdb2

重新挂载

mount /dev/sdb2 /b3/b2

再次查看挂载点

img

sdb2分区里的文件仍然存在,路径改为了/b3/b2。

img


分区 挂载点
centos-root /
sda1 /boot
sdb1 /b1
sdb2 /b3/b2
sdb3 /b3

再次创建文件

echo file0 > /file00.txt
echo file2222000 > /b2/file22.txt
echo file3333000 > /b3/b2/file33.txt

查看三个文件的分区

df /file00.txt
df /b2/file22.txt
df /b3/b2/file33.txt

分析

/file00.txt 匹配到/

/b2/file22.txt 匹配到/

/b3/b2/file33.txt 匹配到/b3


df命令查看文件所在分区

img

与分析一致。