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

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

losetup /dev/loop0 mydisk.img

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

mke2fs /dev/loop0

第四步,挂载

mkdir /mnt/myos

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

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

[root@linux /]# ll /dev/loop0
brw-rw----. 1 root disk 7, 0 Sep 14 01:15 /dev/loop0

继续完善/mnt/myos目录,首先,拷贝bashmyosbin目录中,执行下述三条命令

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

查看bash需要的依赖

ldd /mnt/myos/bin/bash

显示如下信息

linux-vdso.so.1 =>  (0x00007ffd88ba5000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007fb19c6ca000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fb19c4c6000)
libc.so.6 => /lib64/libc.so.6 (0x00007fb19c0f8000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb19c8f4000)

模拟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

[root@linux myos]# chroot ./
bash-4.2# echo "d" > /abc.txt

退出bash,并在/mnt/myos目录下,

[root@linux myos]# cat /mnt/myos/abc.txt
d

更多

博客园:Linux 学习笔记

CSDN: Linux 学习笔记

Linux 下模拟制作块设备并挂载的更多相关文章

  1. Linux下方便的块设备查看工具lsblk

    之前在Linux下看有什么块设备,通常都用fdisk什么的或者直接ls /dev/ 去看很不方便. 这个工具属于util-linux-ng包,在RHEL 6.1上是安装好的啦,直接用就好. ubunt ...

  2. linux平台模拟生成CAN设备

    前言 使用socketCan的过程中有时候没有can接口设备,但是需要测试一下can接口程序是否有问题, 此时需要系统模拟生成can设备,本文介绍linux平台模拟生成CAN设备的方法. 实现步骤 1 ...

  3. Linux下模拟多线程的并发并发shell脚本

    分享一个在Linux下模拟多线程的并发脚本,使用这个脚本可以同时批量在定义数量的服务器上执行相关命令,比起普通for/while循环只能顺序一条一条执行的效率高非常多,在管理大批服务器时非常的实用.  ...

  4. linux下补丁制作及打补丁实例【转】

    转自:http://www.latelee.org/using-gnu-linux/diff-and-patch-on-linux.html 搞ARM有一段时日了,期间看了不少开发板的手册,手册的内容 ...

  5. 用 Linux blkid 命令查找块设备详情

    今天我们将会向你展示如何使用 lsblk 和 blkid 工具来查找关于块设备的信息,我们使用的是一台安装了 CentOS 7.0 的机器. lsblk lsblk 是一个 Linux 工具,它会显示 ...

  6. Linux下磁盘分区,格式化以及挂载

    测试环境:VMware Workstation / centos7 1.磁盘分区 (1)易于管理和使用: 比如说我们把磁盘分了sda1.sda2.sda3.sda4盘,我们假设sda1盘为系统盘,其他 ...

  7. linux驱动开发之块设备学习笔记

    我的博客主要用来存放我的学习笔记,如有侵权,请与我练习,我会立刻删除.学习参考:http://www.cnblogs.com/yuanfang/archive/2010/12/24/1916231.h ...

  8. Linux平台下:块设备、裸设备、ASMlib、Udev相关关系

    对磁盘设备(裸分区)的访问方式分为两种:1.字符方式访问(裸设备):2.块方式访问 Solaris平台 : 在Solaris平台下,系统同时提供对磁盘设备的字符.块方式访问.每个磁盘有两个设备文件名: ...

  9. linux下自动加载设备驱动程序模块

    假设你的设备驱动程序为:yourdrivername.ko  1 cp yourdrivername.ko /lib/modules/"version"/kernel/driver ...

随机推荐

  1. 妙用 CSS 构建花式透视背景效果

    本文将介绍一种巧用 background 配合 backdrop- filter 来构建有趣的透视背景效果的方式. 本技巧源自于一名群友的提问,如何构建如 ElementUI 文档的一种顶栏背景特效, ...

  2. 从零开始Blazor Server(8)--增加菜单以及调整位置

    这篇干啥 这篇文章主要是把前面的一些东西稍微调整一下,使其更适合后面的内容. 主要是两个事,一个是把原来的PermissionEntity直接变成MenuEntity,直接让最后一级是菜单,这样后面就 ...

  3. Tomcat报错:类XXXServlet不是Servlet 解决方法

    学习servlet 结果对应网页打不开,报错 HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 类HelloServlet不是Servlet ... 根本原因. java.lang.Cl ...

  4. POJ3903Stock Exchange (LIS)

    学了下BIT,炸了... #include <iostream> #include <cstdio> #include <cstring> #include < ...

  5. 一文搞懂│mysql 中的备份恢复、分区分表、主从复制、读写分离

    目录 mysql 的备份和恢复 mysql 的分区分表 mysql 的主从复制读写分离 mysql 的备份和恢复 创建备份管理员 创建备份管理员,并授予管理员相应的权限 备份所需权限:select,r ...

  6. gorm tips

    约定的列名 type User struct { ID uint // 列名是 `id` Name string // 列名是 `name` Birthday time.Time // 列名是 `bi ...

  7. CAD二次开发(.net)优秀网站分享

    Autodesk官方网站 官方帮助文档:AutoCAD 2016 帮助: Managed .NET Developer's Guide (.NET) (autodesk.com) DXF帮助手册:DX ...

  8. Tomcat 10无法使用javax包

    可以导入新的 jakarta包 <dependencies><!--servlet依赖--> <dependency> <groupId>jakarta ...

  9. 【JDBC】学习路径9-dbcp数据源的使用

    第一章:下载 要下载三个东西:commons pool.commons log.dbcp dbcp中有些东西是依赖于commons pool 和 commons log 的. 缺一不可,否则无法正确运 ...

  10. omc.

    OMC 099(4b) D 因为 \((abc)^{\dfrac 13} \le \dfrac{a+b+c}3\)(基本不等式),将 \(a = xy, b = yz, c = xz\) 代入得到 \ ...