Linux 下模拟制作块设备并挂载 - Grey Zeng
source link: https://www.cnblogs.com/greyzeng/p/16794865.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Linux 下模拟制作块设备并挂载
作者:Grey
原文地址:
环境#
CentOS-7
下载地址:下载 CentOS-7
Linux 的安装可以参考:Linux 安装,快照,克隆
操作步骤#
第一步,通过以下命令生成100m
的空img
文件,其中dd
命令可以用于硬盘的互相拷贝。
dd if=/dev/zero of=mydisk.img bs=1048576 count=100
第二步,使用losetup
将磁盘镜像文件虚拟成块设备
losetup /dev/loop0 mydisk.img
第三步,通过mke2fs
命令用于建立ext2
文件系统。
mke2fs /dev/loop0
第四步,挂载,首先,创建一个文件夹
mkdir /mnt/myos
然后挂载到这个文件夹
mount -t ext2 /dev/loop0 /mnt/myos
查看/dev/loop0
信息,它就是一个块设备
ll /dev/loop0
继续完善/mnt/myos
目录,
首先,拷贝 bash 到myos
的 bin 目录中,执行下述两条命令
mkdir /mnt/myos/bin
cd /mnt/myos && cp /bin/bash ./bin
查看 bash 需要的依赖
ldd /mnt/myos/bin/bash
显示如下信息
linux-vdso.so.1 => (0x00007ffd31dd1000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f98391cf000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f9838fcb000)
libc.so.6 => /lib64/libc.so.6 (0x00007f9838bfd000)
/lib64/ld-linux-x86-64.so.2 (0x00007f98393f9000)
模拟 bash 的依赖结构,我们建立好对应的依赖存放目录
mkdir /mnt/myos/lib64
将系统中 bash 的所有依赖拷贝到这个目录
cp /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /mnt/myos/lib64/
启动myos
下的 bash
cd /mnt/myos
chroot ./
注:chroot 命令是把根目录换成指定的目的目录。
使用 echo 和重定向测试 bash
echo "d" > /abc.txt
exit
退出 bash ,并在/mnt/myos
目录下,使用 ls 命令,可以查看到 abc.txt 已经生成,使用
cat /mnt/myos/abc.txt
可以看到刚才通过 bash 写入的内容
更多#
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK