共计 4195 个字符,预计需要花费 11 分钟才能阅读完成。
了解如何在 Linux 中使用 Loop 设备来访问常规文件作为块设备的方法。Loop 设备是一种虚拟设备,它允许将普通文件作为块设备进行访问。您可以使用 Loop 设备创建文件系统、挂载 ISO 映像等操作。
概述
如果您曾经下载过新的 Linux 发行版 ISO 映像,您可能想知道如何在重新分区磁盘并将操作系统安装到本地磁盘之前访问映像中的内容。这可以通过 Linux 中的 Loop 挂载来完成。
在 Linux 和其他类 UNIX 系统中,可以使用常规文件作为块设备。Loop 设备是一种虚拟或伪设备,它允许将常规文件作为块设备进行访问。假设您想要创建 Linux 文件系统,但没有可用的空闲磁盘分区。在这种情况下,您可以在磁盘上创建一个常规文件,并使用该文件创建一个 Loop 设备。新伪设备的设备节点列表可以在 /dev 下看到。然后可以使用该 Loop 设备创建新的文件系统。可以挂载文件系统,并且可以使用普通文件系统 API 访问其内容。
Loop 设备的用途
如上所述,用途之一是在没有可用磁盘分区时创建具有常规文件的文件系统。
Loop 设备的另一个常见用途是可安装操作系统的 ISO 映像。通过将 ISO 映像安装为 Loop 设备,可以轻松浏览 ISO 映像的内容。
在 Linux 中创建 Loop 设备
这些命令需要 root 权限。
1. 在磁盘上创建一个大型常规文件,用于创建 Loop 设备。
# dd if=/dev/zero of=/loopfile bs=1024 count=51200
51200+0 records in
51200+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.114882 s, 456 MB/s
此命令创建一个名为 Loopfile 的 50Mb 文件,该文件用零填充。
如果您已经有一个想要作为 Loop 设备安装的映像文件,那么您可以跳过此步骤。
2. 使用上面创建的大文件创建一个 Loop 设备。
可能已经创建了一些 Loop 设备。运行以下命令查找第一个可用的设备节点。
# losetup -f
/dev/loop1
这样我们就可以安全地使用它 /dev/loop1 来创建我们的 Loop 设备。使用以下命令创建 Loop 设备。
# losetup /dev/loop1 /loopfile
如果没有看到错误,则常规文件 /loopfile 现在已与 Loop 设备关联 /dev/loop1。
3. 确认创建 Loop 设备
# losetup /dev/loop1
/dev/loop1: [66309]:214 (/loopfile)
使用 Loop 设备创建 Linux 文件系统
您现在可以使用此 Loop 设备创建普通的 Linux 文件系统。
1. 使用创建 ext4 文件系统 /dev/loop1。
# mkfs -t ext4 -v /dev/loop1
mke2fs 1.45.3 (14-Jul-2019)
fs_types for mke2fs.conf resolution: 'ext4', 'small'
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
12800 inodes, 12800 blocks
640 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=14680064
1 block group
32768 blocks per group, 32768 fragments per group
12800 inodes per group
Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
2. 为文件系统创建挂载点。
# mkdir /mnt/loopfs
3. 挂载新创建的文件系统。
# mount -t ext4 /dev/loop1 /mnt/loopfs
此命令将 Loop 设备安装为普通的 Linux ext4 文件系统,可以在其上执行普通的文件系统操作。 文章来源:https://www.toymoban.com/diary/system/430.html
4. 检查文件系统的磁盘使用情况。
# df -h /dev/loop1
Filesystem Size Used Avail Use% Mounted on
/dev/loop1 45M 48K 41M 1% /mnt/loopfs
5. 用于 tune2fs 查看文件系统设置。
# tune2fs -l /dev/loop1
tune2fs 1.45.3 (14-Jul-2019)
Filesystem volume name:
Last mounted on:
Filesystem UUID: b1b13d6e-c544-45dd-a549-5846371fbde6
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 12800
Block count: 12800
Reserved block count: 640
Free blocks: 11360
Free inodes: 12789
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 6
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 12800
Inode blocks per group: 400
Flex block group size: 16
Filesystem created: Sun Mar 19 08:56:47 2023
Last mount time: Sun Mar 19 09:00:52 2023
Last write time: Sun Mar 19 09:00:52 2023
Mount count: 1
Maximum mount count: -1
Last checked: Sun Mar 19 08:56:47 2023
Check interval: 0 ()
Lifetime writes: 37 kB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: e489fd33-4003-4235-9347-144c7a5d4d73
Journal backup: inode blocks
Checksum type: crc32c
Checksum: 0x3b8c797a
6. 要卸载文件系统并删除 Loop 设备,请运行以下命令。
# umount /mnt/loopfs/
# losetup -d /dev/loop1
文章来源地址 https://www.toymoban.com/diary/system/430.html
到此这篇关于 Linux 中的 Loop 设备, 在 Linux 中访问常规文件作为块设备的文章就介绍到这了, 更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持 TOY 模板网!
原文地址:https://www.toymoban.com/diary/system/430.html
如若转载,请注明出处:如若内容造成侵权 / 违法违规 / 事实不符,请联系站长进行投诉反馈,一经查实,立即删除!