如何在Linux系统中使用mount命令挂载分区镜像文件?
最编程
2024-08-15 07:13:01
...
在linux中,可以用dd命令把分区镜像,保存为一个文件。使用mount -o loop可直接将镜象文件挂载。
前段时间,把一个128M的U盘用dd制作成为一个128M的文件,这里U盘为/dev/sdb,我用usb128Msdb作为文件名保存
dd if=/dev/sdb of=usb128Msdb
之所以用dd命令,是为了在终端操作方便快速,同时防止windows文件系统复制出错。由于128M的U盘很小,里面的文件目录太多,还是中文名称,用dd镜像后只有一个文件,方便保存和管理。
使用时,先习惯性用-o loop挂载
mount -o loop usb128Msdb /mnt/
结果没成功
分别用file 和fdisk -l命令查看usb128Msdb文件信息
确定是镜像文件,并且有一个分区
挂载带分区的镜像文件,这就需要用-o offset=xxx参数挂载,
首先用fdisk -lu查看分区信息(要用-u参数, 以扇区数而不是以柱面数的形式显示分区表中各分区的信息)
root@think:/home/usb# fdisk -ul usb128Msdb
You must set cylinders.
You can do this from the extra functions menu.
Disk usb128Msdb: 0 MB, 0 bytes
8 heads, 32 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0d0c0b0a
Device Boot Start End Blocks Id System
usb128Msdb1 * 32 257279 128624 b W95 FAT32
这里用32乘以512得到分区开始位置,就是offset参数值
root@think:/home/usb# echo 32*512 |bc
16384
用monut 挂载(由于能自动识别vfat文件系统,这里mount挂载时省略了-t参数)
mount -o offset=16384 usb128Msdb /mnt/
挂载成功
root@think:/home/usb# df -Th
……
/dev/loop0 vfat 125M 124M 1.6M 99% /mnt
附:parted查看分区信息方法
习惯用fdisk工具,还有其他工具可得到分区信息,如parted
我用的是debian Squeeze,系统默认没安装,先从源安装
aptitude install parted
然后运行
parted usb128Msdb
先设置unit为B,然后用p就可显示,记下分区位置,用quit退出。
root@think:/home/usb# parted usb128Msdb
GNU Parted 2.3
Using /home/usb/usb128Msdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit? [compact]? B
(parted) p
Model: (file)
Disk /home/usb/usb128Msdb: 131727360B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 16384B 131727359B 131710976B primary fat32 boot
(parted) quit
用parted可直接显示分区开始位置,不用再计算。
前段时间,把一个128M的U盘用dd制作成为一个128M的文件,这里U盘为/dev/sdb,我用usb128Msdb作为文件名保存
dd if=/dev/sdb of=usb128Msdb
之所以用dd命令,是为了在终端操作方便快速,同时防止windows文件系统复制出错。由于128M的U盘很小,里面的文件目录太多,还是中文名称,用dd镜像后只有一个文件,方便保存和管理。
使用时,先习惯性用-o loop挂载
mount -o loop usb128Msdb /mnt/
结果没成功
分别用file 和fdisk -l命令查看usb128Msdb文件信息
确定是镜像文件,并且有一个分区
挂载带分区的镜像文件,这就需要用-o offset=xxx参数挂载,
首先用fdisk -lu查看分区信息(要用-u参数, 以扇区数而不是以柱面数的形式显示分区表中各分区的信息)
root@think:/home/usb# fdisk -ul usb128Msdb
You must set cylinders.
You can do this from the extra functions menu.
Disk usb128Msdb: 0 MB, 0 bytes
8 heads, 32 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0d0c0b0a
Device Boot Start End Blocks Id System
usb128Msdb1 * 32 257279 128624 b W95 FAT32
这里用32乘以512得到分区开始位置,就是offset参数值
root@think:/home/usb# echo 32*512 |bc
16384
用monut 挂载(由于能自动识别vfat文件系统,这里mount挂载时省略了-t参数)
mount -o offset=16384 usb128Msdb /mnt/
挂载成功
root@think:/home/usb# df -Th
……
/dev/loop0 vfat 125M 124M 1.6M 99% /mnt
附:parted查看分区信息方法
习惯用fdisk工具,还有其他工具可得到分区信息,如parted
我用的是debian Squeeze,系统默认没安装,先从源安装
aptitude install parted
然后运行
parted usb128Msdb
先设置unit为B,然后用p就可显示,记下分区位置,用quit退出。
root@think:/home/usb# parted usb128Msdb
GNU Parted 2.3
Using /home/usb/usb128Msdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit? [compact]? B
(parted) p
Model: (file)
Disk /home/usb/usb128Msdb: 131727360B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 16384B 131727359B 131710976B primary fat32 boot
(parted) quit
用parted可直接显示分区开始位置,不用再计算。
推荐阅读
-
如何在Linux系统中使用mount命令挂载分区镜像文件?
-
使用mount命令在Linux系统中挂载U盘(版本为10.8)
-
紧急模式问题处理 - 图 1 紧急模式 根本原因分析 应急模式提供了尽可能小的环境,即使无法进入应急模式,也可以在其中修复系统。在应急模式下,系统只安装根文件系统供读取,不尝试安装任何其他本地文件系统,不激活网络接口,只启动一些基本服务。 进入应急模式的原因通常是 /etc/fstab 文件中存在错误,导致文件系统挂载失败。 文件系统中存在错误,导致。 约束和限制 本节适用于 Linux 操作系统紧急模式。程序涉及修复文件系统。修复文件系统有丢失数据的风险,因此请先备份数据,然后再执行修复操作。 处理方法 输入根密码,然后进入修复模式。 在应急模式下,根分区以只读模式挂载。要修改根目录中的文件,需要执行以下命令以读写模式重新挂载根分区。# mount -o rw,remount / 请执行以下命令首先检查 fstab 文件是否有误,然后尝试挂载所有未挂载的文件系统。# mount -a 如果挂载点不存在,请创建一个挂载点。 如果不存在此类设备,请注释或删除挂载行。 如果指定了不正确的挂载选项,请将挂载参数更改为正确的参数。 如果没有发生错误,但出现 UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY 消息(通常是由文件系统错误引起的),请跳至第 7 步。 执行以下命令打开 /etc/fstab 以修改相应的错误。# vi /etc/fstab /etc/fstab 文件包含以下字段,以空格分隔:[文件系统] [dir] [type] [options] [dump] [fsck] 表 1 /etc/fstab 参数 说明 参数 说明 [文件系统] 要挂载的分区或存储设备。 文件系统]列建议以 UUID 的形式写入。执行 blkid 命令可查询设备文件系统 UUID。 参考格式如下: # <device> <dir> <type> <options> <dump> <fsck>; UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4 defaults 0 2 使用 UUID 的好处是,它们与磁盘顺序无关。如果你在 BIOS 中更改了存储设备的顺序,或重新插入了存储设备,或者因为某些 BIOS 可能会随机更改存储设备的顺序,那么使用 UUID 会更有效率。 [文件系统] 文件系统]的挂载位置。 类型 挂载设备或分区的文件系统类型,支持多种不同的文件系统:ext2、ext3、ext4、reiserfs、xfs、jfs、smbfs、iso9660、vfat、ntfs、swap 和 auto。 设置为自动类型后,挂载命令会猜测所使用的文件系统类型,这对 CDROM 和 DVD 等移动设备非常有用。 选项 挂载时要使用的参数,有些参数是特定文件系统特有的。例如,默认值参数使用文件系统的默认挂载参数,ext4 的默认参数为:rw、suid、dev、exec、auto、nouser、async。 有关更多参数,请执行以下命令查看 man 手册:# man mount
-
Linux——FTP服务器搭建及访问-重点一、安装vsftp服务器软件,并启动 vsftpd是Linux下的一款小巧轻快、安全易用的FTP服务器软件,是受各个Linux发行版推崇的FTP服务器软件。安装方式:法一、yum安装: yum install -y vsftpd 出现如下图形即代表安装成功法二、镜像文件下载 rpm安装 ====》使用挂载光盘的方式进行下载 更改Linux系统的挂载镜像文件(.iso文件) 使用mount命令进行挂载.iso文件(等同于挂载在光盘) ==》mount /dev/cdrom /mnt/cdrom 进入/mnt/cdrom 目录,进行访问即可 安装命令:rpm -ivh rpm安装包