了解如何在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: <none> Last mounted on: <not available> 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 (<none>) 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模板网!