5

Linux 下模拟制作块设备并挂载 - Grey Zeng

 1 year ago
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.
neoserver,ios ssh client

Linux 下模拟制作块设备并挂载

作者:Grey

原文地址:

博客园:Linux 下模拟制作块设备并挂载

CSDN:Linux 下模拟制作块设备并挂载

环境#

CentOS-7

下载地址:下载 CentOS-7

Linux 的安装可以参考:Linux 安装,快照,克隆

操作步骤#

第一步,通过以下命令生成100m的空img文件,其中dd命令可以用于硬盘的互相拷贝。

dd if=/dev/zero of=mydisk.img bs=1048576 count=100

image

第二步,使用losetup将磁盘镜像文件虚拟成块设备

losetup /dev/loop0 mydisk.img 

第三步,通过mke2fs命令用于建立ext2文件系统。

mke2fs /dev/loop0

image

第四步,挂载,首先,创建一个文件夹

mkdir /mnt/myos

然后挂载到这个文件夹

mount -t ext2 /dev/loop0 /mnt/myos

查看/dev/loop0信息,它就是一个块设备

ll /dev/loop0

image

继续完善/mnt/myos目录,

首先,拷贝 bash 到myos的 bin 目录中,执行下述两条命令

mkdir /mnt/myos/bin
cd /mnt/myos && cp /bin/bash ./bin

查看 bash 需要的依赖

ldd /mnt/myos/bin/bash

image

显示如下信息

 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 写入的内容

image

更多#

博客园:Linux 学习笔记

CSDN: Linux 学习笔记


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK