本地文件映射为磁盘

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
41
42
#!/bin/bash
# pur @ 创建文件映射挂载点
# date @ 2018.05.03

#映射文件
diskFile=$1
#挂载路径
mountDir=$2

if [ -z "${diskFile}" -o -z "${mountDir}" ]; then
echo "useage: $0 mapfile mountdir"
echo "eg: $0 /root/data.img /dir1"
exit 0
fi


# 1、 安装mkfs.ext4或xfs系统格式化工具
yum install -y e4fsprogs
#yum -y install xfsprogs
# 2、查询当前可用设备
curDevice=`losetup -f`
if [ ! -d ${mountDir} ] ; then
mkdir -p ${mountDir}
fi

if [ ! -b ${curDevice} ] ; then
seq=`echo ${curDevice} |awk -F'loop' '{print $2}' `
mknod -m 0660 ${curDevice} b 7 ${seq}
echo "not exist ${curDevice}, seq=${seq}"
else
echo "exist ${curDevice}"
fi
# 3、创建镜像文件
dd if=/dev/zero of=${diskFile} bs=1M count=1024
# 4、使用 losetup将磁盘镜像文件虚拟成块设备
losetup ${curDevice} ${diskFile}
# 5、在块设备上创建文件系统
mkfs.ext4 ${curDevice}
# 6、mount挂载文件系统, 加上sync,确保文件可以及时地写入到映像中
mount ${diskFile} ${mountDir} -o sync
# 7、卸载回环设置
losetup -d ${curDevice}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!