了解如何在Linux中使用Loop設(shè)備來訪問常規(guī)文件作為塊設(shè)備的方法。Loop設(shè)備是一種虛擬設(shè)備,它允許將普通文件作為塊設(shè)備進(jìn)行訪問。您可以使用Loop設(shè)備創(chuàng)建文件系統(tǒng)、掛載ISO映像等操作。
概述
如果您曾經(jīng)下載過新的Linux發(fā)行版 ISO 映像,您可能想知道如何在重新分區(qū)磁盤并將操作系統(tǒng)安裝到本地磁盤之前訪問映像中的內(nèi)容。這可以通過 Linux 中的Loop掛載來完成。
在Linux和其他類UNIX系統(tǒng)中,可以使用常規(guī)文件作為塊設(shè)備。Loop設(shè)備是一種虛擬或偽設(shè)備,它允許將常規(guī)文件作為塊設(shè)備進(jìn)行訪問。假設(shè)您想要?jiǎng)?chuàng)建 Linux 文件系統(tǒng),但沒有可用的空閑磁盤分區(qū)。在這種情況下,您可以在磁盤上創(chuàng)建一個(gè)常規(guī)文件,并使用該文件創(chuàng)建一個(gè)Loop設(shè)備。新偽設(shè)備的設(shè)備節(jié)點(diǎn)列表可以在/dev 下看到。然后可以使用該Loop設(shè)備創(chuàng)建新的文件系統(tǒng)??梢話燧d文件系統(tǒng),并且可以使用普通文件系統(tǒng) API 訪問其內(nèi)容。
Loop設(shè)備的用途
如上所述,用途之一是在沒有可用磁盤分區(qū)時(shí)創(chuàng)建具有常規(guī)文件的文件系統(tǒng)。
Loop設(shè)備的另一個(gè)常見用途是可安裝操作系統(tǒng)的 ISO 映像。通過將 ISO 映像安裝為L(zhǎng)oop設(shè)備,可以輕松瀏覽 ISO 映像的內(nèi)容。
在 Linux 中創(chuàng)建Loop設(shè)備
這些命令需要 root 權(quán)限。
1. 在磁盤上創(chuàng)建一個(gè)大型常規(guī)文件,用于創(chuàng)建Loop設(shè)備。
# 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
此命令創(chuàng)建一個(gè)名為 Loopfile 的 50Mb 文件,該文件用零填充。
如果您已經(jīng)有一個(gè)想要作為L(zhǎng)oop設(shè)備安裝的映像文件,那么您可以跳過此步驟。
2. 使用上面創(chuàng)建的大文件創(chuàng)建一個(gè)Loop設(shè)備。
可能已經(jīng)創(chuàng)建了一些Loop設(shè)備。運(yùn)行以下命令查找第一個(gè)可用的設(shè)備節(jié)點(diǎn)。
# losetup -f /dev/loop1
這樣我們就可以安全地使用它/dev/loop1來創(chuàng)建我們的Loop設(shè)備。使用以下命令創(chuàng)建Loop設(shè)備。
# losetup /dev/loop1 /loopfile
如果沒有看到錯(cuò)誤,則常規(guī)文件/loopfile現(xiàn)在已與Loop設(shè)備關(guān)聯(lián)/dev/loop1。
3.確認(rèn)創(chuàng)建Loop設(shè)備
# losetup /dev/loop1 /dev/loop1: [66309]:214 (/loopfile)
使用Loop設(shè)備創(chuàng)建 Linux 文件系統(tǒng)
您現(xiàn)在可以使用此Loop設(shè)備創(chuàng)建普通的 Linux 文件系統(tǒng)。
1. 使用創(chuàng)建 ext4 文件系統(tǒng)/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. 為文件系統(tǒng)創(chuàng)建掛載點(diǎn)。
# mkdir /mnt/loopfs
3. 掛載新創(chuàng)建的文件系統(tǒng)。
# mount -t ext4 /dev/loop1 /mnt/loopfs
此命令將Loop設(shè)備安裝為普通的 Linux ext4 文件系統(tǒng),可以在其上執(zhí)行普通的文件系統(tǒng)操作。文章來源:http://www.zghlxwxcb.cn/article/430.html
4. 檢查文件系統(tǒng)的磁盤使用情況。
# df -h /dev/loop1 Filesystem Size Used Avail Use% Mounted on /dev/loop1 45M 48K 41M 1% /mnt/loopfs
5. 用于tune2fs查看文件系統(tǒng)設(shè)置。
# 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. 要卸載文件系統(tǒng)并刪除Loop設(shè)備,請(qǐng)運(yùn)行以下命令。
# umount /mnt/loopfs/ # losetup -d /dev/loop1
文章來源地址http://www.zghlxwxcb.cn/article/430.html
到此這篇關(guān)于Linux 中的Loop設(shè)備,在Linux中訪問常規(guī)文件作為塊設(shè)備的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!