402 Star 1.4K Fork 1.3K

GVPopenEuler / kernel

 / 详情

[OLK 6.6]挂载文件系统的裸盘操作打印增强

已完成
任务
创建于  
2023-12-28 16:14

文件系统的挂载点,如果有对盘进行裸盘操作,有可能会对文件系统产生未知异常。

需要对这种高危操作进行定位定界

功能:

  1. 对已挂载文件系统的盘进行裸盘操作时打印提示信息
  2. 对已经使用写方式打开的设备尝试进行挂载时打印提示信息

评论 (2)

Li Lingfeng 创建了任务

Hi li-lingfeng3, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Kernel, and any of the maintainers.

验证脚本:

#!/bin/bash
export disk_a=/dev/sda
export disk_a1=/dev/sda1
export disk_a2=/dev/sda2
export disk_b=/dev/sdb
export mount_point_a=/mnt/sda
export mount_point_b=/mnt/sdb
export write_dev=test_write


dmesg -C
echo "allow write mounted test" > log.txt

#case 1
echo "------ case1 ------"
echo "------ case1 ------" >> log.txt
sleep 1s
./$write_dev $disk_a &
sleep 1s
./$write_dev $disk_a &
sleep 1s
killall $write_dev
dmesg >> log.txt
dmesg -C

#case 2
echo "------ case2 ------"
echo "------ case2 ------" >> log.txt
sleep 1s
./$write_dev $disk_b &
sleep 1s
mount $disk_b $mount_point_b
sleep 1s
umount $mount_point_b
sleep 1s
killall $write_dev
dmesg >> log.txt
dmesg -C

#case 3
echo "------ case3 ------"
echo "------ case3 ------" >> log.txt
sleep 1s
./$write_dev $disk_a &
sleep 1s
./$write_dev $disk_a1 &
sleep 1s
killall $write_dev
dmesg >> log.txt
dmesg -C

#case 4
echo "------ case4 ------"
echo "------ case4 ------" >> log.txt
sleep 1s
./$write_dev $disk_a &
sleep 1s
mount $disk_a1 $mount_point_a
sleep 1s
killall $write_dev
sleep 1s
umount $mount_point_a
dmesg >> log.txt
dmesg -C

#case 5
echo "------ case5 ------"
echo "------ case5 ------" >> log.txt
sleep 1s
mount $disk_b $mount_point_b
sleep 1s
./$write_dev $disk_b &
sleep 1s
umount $mount_point_b
sleep 1s
killall $write_dev
dmesg >> log.txt
dmesg -C

#case 6
echo "------ case6 ------"
echo "------ case6 ------" >> log.txt
sleep 1s
mount $disk_b $mount_point_a
sleep 1s
mount $disk_b $mount_point_b
sleep 1s
umount $mount_point_b
sleep 1s
umount $mount_point_a
dmesg >> log.txt
dmesg -C

#case 7
echo "------ case7 ------"
echo "------ case7 ------" >> log.txt
sleep 1s
./$write_dev $disk_a &
sleep 1s
./$write_dev $disk_a1 &
sleep 1s
killall $write_dev
dmesg >> log.txt
dmesg -C

#case 8
echo "------ case8 ------"
echo "------ case8 ------" >> log.txt
sleep 1s
./$write_dev $disk_a1 &
sleep 1s
./$write_dev $disk_a2 &
sleep 1s
killall $write_dev
dmesg >> log.txt
dmesg -C

#case 9
echo "------ case9 ------"
echo "------ case9 ------" >> log.txt
sleep 1s
./$write_dev $disk_a1 &
sleep 1s
mount $disk_a2 $mount_point_a
sleep 1s
umount $mount_point_a
sleep 1s
killall $write_dev
dmesg >> log.txt
dmesg -C

#case 10
echo "------ case10 ------"
echo "------ case10 ------" >> log.txt
sleep 1s
mount $disk_a1 $mount_point_a
sleep 1s
./$write_dev $disk_a &
sleep 1s
umount $mount_point_a
sleep 1s
killall $write_dev
dmesg >> log.txt
dmesg -C

#case 11
echo "------ case11 ------"
echo "------ case11 ------" >> log.txt
sleep 1s
mount $disk_a1 $mount_point_a
sleep 1s
./$write_dev $disk_a2 &
sleep 1s
umount $mount_point_a
sleep 1s
killall $write_dev
dmesg >> log.txt
dmesg -C

#case 12
echo "------ case12 ------"
echo "------ case12 ------" >> log.txt
sleep 1s
mount $disk_a1 $mount_point_a
sleep 1s
mount $disk_a2 $mount_point_b
sleep 1s
dmesg >> log.txt
umount $mount_point_b
sleep 1s
umount $mount_point_a
dmesg >> log.txt
dmesg -C

#case 13
echo "------ case13 ------"
echo "------ case13 ------" >> log.txt
dmsetup create test --table "0 2097152 linear /dev/sdc 0"
sleep 1s
mkfs.ext4 -F /dev/mapper/test
sleep 1s
mount /dev/mapper/test $mount_point_a
sleep 1s
./$write_dev /dev/sdc &
sleep 1s
umount $mount_point_a
sleep 1s
killall $write_dev
sleep 1s
dmsetup remove /dev/mapper/test
dmesg >> log.txt
dmesg -C

#case 14
echo "------ case14 ------"
echo "------ case14 ------" >> log.txt
dmsetup create test --table "0 2097152 linear /dev/sdd1 0"
sleep 1s
mkfs.ext4 -F /dev/mapper/test
sleep 1s
mount /dev/mapper/test $mount_point_a
sleep 1s
./$write_dev /dev/sdd &
sleep 1s
umount $mount_point_a
sleep 1s
killall $write_dev
sleep 1s
dmsetup remove /dev/mapper/test
dmesg >> log.txt
dmesg -C

<< COMMENT

dm(sda) --> write sda
dmsetup create test --table "0 2097152 linear /dev/sdc 0"
./test_write sdc

dm(sda block_start~block_n) --> dm(sda block_n~block_end)
dmsetup create test --table "0 2097152 linear /dev/sdc 0"
dmsetup create test1 --table "0 2097152 linear /dev/sdc 2097152"

dm(sda1) --> write sda
dm(sda1) --> write sda1
dm(sda1) --> write sda2
dmsetup create test --table "0 2097152 linear /dev/sdd1 0"

write sda1 --> mkfs sda --> mount sda (--> write sda2)

COMMENT

#case 15
echo "------ case15 ------"
echo "------ case15 ------" >> log.txt
dmsetup create test --table "0 2097152 linear /dev/sdc 0"
sleep 1s
./$write_dev /dev/sdc &
sleep 1s
killall $write_dev
sleep 1s
dmsetup remove /dev/mapper/test
dmesg >> log.txt
dmesg -C

#case 16
echo "------ case16 ------"
echo "------ case16 ------" >> log.txt
sleep 1s
dmsetup create test --table "0 2097152 linear /dev/sdc 0"
sleep 1s
dmsetup create test1 --table "0 2097152 linear /dev/sdc 2097152"
sleep 1s
dmsetup remove_all
dmesg >> log.txt
dmesg -C

#case 17
echo "------ case17 ------"
echo "------ case17 ------" >> log.txt
sleep 1s
dmsetup create test --table "0 2097152 linear /dev/sdd1 0"
sleep 1s
./$write_dev /dev/sdd &
sleep 1s
./$write_dev /dev/sdd1 &
sleep 1s
./$write_dev /dev/sdd2 &
sleep 1s
killall $write_dev
sleep 1s
dmsetup remove_all
dmesg >> log.txt
dmesg -C

#case 18
echo "------ case18 ------"
echo "------ case18 ------" >> log.txt
sleep 1s
./$write_dev $disk_a1 &
sleep 1s
mkfs.ext4 -F $disk_a
sleep 1s
mount $disk_a $mount_point_a
sleep 1s
./$write_dev $disk_a2 &
sleep 1s
umount $mount_point_a
sleep 1s
killall $write_dev
sleep 1s
dmsetup remove_all
dmesg >> log.txt
dmesg -C

验证记录:

allow write mounted test
------ case1 ------
[ 5428.259432]  sda: sda1 sda2
------ case2 ------
[ 5431.067332] VFS: Open a write opened block device exclusively [sdb]. current [2731 mount]. parent [2712 sh]
[ 5431.083330] EXT4-fs (sdb): mounted filesystem 23f08dd0-fd34-48a7-a3c6-0b7492ae1b87 r/w with ordered data mode. Quota mode: none.
[ 5432.321365] EXT4-fs (sdb): unmounting filesystem 23f08dd0-fd34-48a7-a3c6-0b7492ae1b87.
------ case3 ------
[ 5436.900151]  sda: sda1 sda2
------ case4 ------
[ 5439.387615] VFS: Open a write opened block device exclusively [sda1]. current [2759 mount]. parent [2712 sh]
[ 5439.401117] EXT4-fs (sda1): mounted filesystem 2dc4fe8c-5b13-48b7-9feb-90b4c19f09e9 r/w with ordered data mode. Quota mode: none.
[ 5441.752648] EXT4-fs (sda1): unmounting filesystem 2dc4fe8c-5b13-48b7-9feb-90b4c19f09e9.
------ case5 ------
[ 5442.847800] EXT4-fs (sdb): mounted filesystem 23f08dd0-fd34-48a7-a3c6-0b7492ae1b87 r/w with ordered data mode. Quota mode: none.
[ 5443.976154] VFS: Open an exclusive opened block device for write [sdb]. current [2779 test_write]. parent [2712 sh]
[ 5443.976197] VFS: Open an exclusive opened block device for write [sdb]. current [2779 test_write]. parent [2712 sh]
[ 5444.994665] EXT4-fs (sdb): unmounting filesystem 23f08dd0-fd34-48a7-a3c6-0b7492ae1b87.
------ case6 ------
[ 5447.297667] EXT4-fs (sdb): mounted filesystem 23f08dd0-fd34-48a7-a3c6-0b7492ae1b87 r/w with ordered data mode. Quota mode: none.
[ 5450.619095] EXT4-fs (sdb): unmounting filesystem 23f08dd0-fd34-48a7-a3c6-0b7492ae1b87.
------ case7 ------
[ 5453.840399]  sda: sda1 sda2
------ case8 ------
------ case9 ------
[ 5459.799477] EXT4-fs (sda2): mounted filesystem 75f74aad-9d62-4d26-8053-d4b34dd34458 r/w with ordered data mode. Quota mode: none.
[ 5461.033568] EXT4-fs (sda2): unmounting filesystem 75f74aad-9d62-4d26-8053-d4b34dd34458.
------ case10 ------
[ 5463.346000] EXT4-fs (sda1): mounted filesystem 2dc4fe8c-5b13-48b7-9feb-90b4c19f09e9 r/w with ordered data mode. Quota mode: none.
[ 5464.501919] VFS: Open an exclusive opened block device for write [sda]. current [2845 test_write]. parent [2712 sh]
[ 5464.501957] VFS: Open an exclusive opened block device for write [sda]. current [2845 test_write]. parent [2712 sh]
[ 5465.542638] EXT4-fs (sda1): unmounting filesystem 2dc4fe8c-5b13-48b7-9feb-90b4c19f09e9.
[ 5466.686007]  sda: sda1 sda2
------ case11 ------
[ 5467.938750] EXT4-fs (sda1): mounted filesystem 2dc4fe8c-5b13-48b7-9feb-90b4c19f09e9 r/w with ordered data mode. Quota mode: none.
[ 5470.200728] EXT4-fs (sda1): unmounting filesystem 2dc4fe8c-5b13-48b7-9feb-90b4c19f09e9.
------ case12 ------
[ 5472.475073] EXT4-fs (sda1): mounted filesystem 2dc4fe8c-5b13-48b7-9feb-90b4c19f09e9 r/w with ordered data mode. Quota mode: none.
[ 5473.597282] EXT4-fs (sda2): mounted filesystem 75f74aad-9d62-4d26-8053-d4b34dd34458 r/w with ordered data mode. Quota mode: none.
[ 5472.475073] EXT4-fs (sda1): mounted filesystem 2dc4fe8c-5b13-48b7-9feb-90b4c19f09e9 r/w with ordered data mode. Quota mode: none.
[ 5473.597282] EXT4-fs (sda2): mounted filesystem 75f74aad-9d62-4d26-8053-d4b34dd34458 r/w with ordered data mode. Quota mode: none.
[ 5474.739611] EXT4-fs (sda2): unmounting filesystem 75f74aad-9d62-4d26-8053-d4b34dd34458.
[ 5475.817240] EXT4-fs (sda1): unmounting filesystem 2dc4fe8c-5b13-48b7-9feb-90b4c19f09e9.
------ case13 ------
[ 5475.888307] device-mapper: ioctl: dmsetup[2886]: dm-0 (test) is created successfully
[ 5478.079712] EXT4-fs (dm-0): mounted filesystem 7980214f-fccb-409e-8f4a-0384108c4a43 r/w with ordered data mode. Quota mode: none.
[ 5479.199819] VFS: Open an exclusive opened block device for write [sdc]. current [2902 test_write]. parent [2712 sh]
[ 5480.254805] EXT4-fs (dm-0): unmounting filesystem 7980214f-fccb-409e-8f4a-0384108c4a43.
[ 5482.442767] device-mapper: ioctl: dmsetup[2911]: dm-0 (test) is removed successfully
------ case14 ------
[ 5482.916561] device-mapper: ioctl: dmsetup[2919]: dm-0 (test) is created successfully
[ 5485.142256] EXT4-fs (dm-0): mounted filesystem 7ff73e56-a995-4204-bfe2-81f4c81e7206 r/w with ordered data mode. Quota mode: none.
[ 5486.268686] VFS: Open an exclusive opened block device for write [sdd]. current [2935 test_write]. parent [2712 sh]
[ 5487.299430] EXT4-fs (dm-0): unmounting filesystem 7ff73e56-a995-4204-bfe2-81f4c81e7206.
[ 5489.420202] device-mapper: ioctl: dmsetup[2945]: dm-0 (test) is removed successfully
------ case15 ------
[ 5489.805674] device-mapper: ioctl: dmsetup[2953]: dm-0 (test) is created successfully
[ 5490.931955] VFS: Open an exclusive opened block device for write [sdc]. current [2962 test_write]. parent [2712 sh]
[ 5493.039065] device-mapper: ioctl: dmsetup[2969]: dm-0 (test) is removed successfully
------ case16 ------
[ 5494.492209] device-mapper: ioctl: dmsetup[2978]: dm-0 (test) is created successfully
[ 5495.637207] device-mapper: ioctl: dmsetup[2987]: dm-1 (test1) is created successfully
[ 5496.780646] device-mapper: ioctl: dmsetup[2996]: dm-0 (test) is removed successfully
[ 5496.801795] device-mapper: ioctl: dmsetup[2996]: dm-1 (test1) is removed successfully
------ case17 ------
[ 5498.198215] device-mapper: ioctl: dmsetup[3004]: dm-0 (test) is created successfully
[ 5499.311568] VFS: Open an exclusive opened block device for write [sdd]. current [3013 test_write]. parent [2712 sh]
[ 5500.351574] VFS: Open an exclusive opened block device for write [sdd1]. current [3015 test_write]. parent [2712 sh]
[ 5503.551924] device-mapper: ioctl: dmsetup[3025]: dm-0 (test) is removed successfully
------ case18 ------
[ 5507.214538] VFS: Open a write opened block device exclusively [sda]. current [3039 mount]. parent [2712 sh]
[ 5507.229717] EXT4-fs (sda): mounted filesystem 6a0b85d3-1727-46ef-a48b-3c1e522551e9 r/w with ordered data mode. Quota mode: none.
[ 5508.349631] VFS: Open an exclusive opened block device for write [sda2]. current [3044 test_write]. parent [2712 sh]
[ 5508.349661] VFS: Open an exclusive opened block device for write [sda2]. current [3044 test_write]. parent [2712 sh]
[ 5509.386125] EXT4-fs (sda): unmounting filesystem 6a0b85d3-1727-46ef-a48b-3c1e522551e9.

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
5329419 openeuler ci bot 1632792936
C
1
https://gitee.com/openeuler/kernel.git
git@gitee.com:openeuler/kernel.git
openeuler
kernel
kernel

搜索帮助