AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1833958
Accepted
silvio2402
silvio2402
Asked: 2024-03-06 16:00:13 +0800 CST2024-03-06 16:00:13 +0800 CST 2024-03-06 16:00:13 +0800 CST

ISO 文件中是否可以有 exFAT 分区?

  • 772

我使用的是具有 16GB 存储空间的 USB 2.0 记忆棒,并且有一个 2.8GB 的​​安装程序 ISO。当将此 ISO 刷新到记忆棒时,我注意到与将 ISO 文件本身复制到记忆棒(4 秒)相比,速度非常慢(5 分钟)。

为什么刷新所需的时间是仅将文件复制到现有分区的时间的 75 倍?

我的假设是,这是因为 ISO 上存在旧的 ISO 9660 文件系统。有人可以确认这个文件系统很慢吗?

我还想知道是否可以使用较新的文件系统(例如 exFAT)的分区制作 ISO。如果不是,为什么 ISO 仍然是操作系统安装程序映像的标准格式?如果可能的话,为什么有人会决定不使用 exFAT 并使用 ISO 9660 呢?

有关 ISO 的信息:

> isoinfo -d -i EndeavourOS_Galileo-Neo-2024.01.25.iso
Setting input-charset to 'UTF-8' from locale.
CD-ROM is in ISO 9660 format
System id: 
Volume id: EOS_202401
Volume set id: 
Publisher id: ENDEAVOUROS <HTTPS://ENDEAVOUROS.COM>
Data preparer id: PREPARED BY MKARCHISO
Application id: ENDEAVOUROS LIVE/RESCUE CD
Copyright File id: 
Abstract File id: 
Bibliographic File id: 
Volume set size is: 1
Volume set sequence number is: 1
Logical block size is: 2048
Volume size is: 1347830
El Torito VD version 1 found, boot catalog is in sector 126

Joliet with UCS level 3 found.
SUSP signatures version 1 found
Rock Ridge signatures version 1 found
Rock Ridge id 'RRIP_1991A'
Eltorito validation header:
    Hid 1
    Arch 0 (x86)
    ID ''
    Cksum AA 55 OK
    Key 55 AA
    Eltorito defaultboot header:
        Bootid 88 (bootable)
        Boot media 0 (No Emulation Boot)
        Load segment 0
        Sys type 0
        Nsect 4
        Bootoff 7F 127

提前致谢!

编辑:我还尝试使用以下命令刷新 ISO:

dd bs=4M if=my.iso of=/dev/sda conv=fdatasync status=progress

花了 15 分钟,这是输出:

2747269120 bytes (2.7 GB, 2.6 GiB) copied, 160 s, 17.2 MB/s2760355840 bytes (2.8 GB, 2.6 GiB) copied, 160.008 s, 17.3 MB/s
   
658+1 records in
658+1 records out
2760355840 bytes (2.8 GB, 2.6 GiB) copied, 856.116 s, 3.2 MB/s

以下是有关闪存分区的一些信息:

> lsblk -f /dev/sda
NAME   FSTYPE  FSVER            LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda    iso9660 Joliet Extension EOS_202401  2024-01-25-18-25-14-00                              
├─sda1 iso9660 Joliet Extension EOS_202401  2024-01-25-18-25-14-00                              
└─sda2 vfat    FAT16            ARCHISO_EFI 8093-0377                 
filesystems
  • 1 1 个回答
  • 47 Views

1 个回答

  • Voted
  1. Best Answer
    u1686_grawity
    2024-03-06T16:50:20+08:002024-03-06T16:50:20+08:00

    为什么刷新所需的时间是仅将文件复制到现有分区的时间的 75 倍?

    大部分文件尚未复制到分区中-它正在操作系统缓冲区/缓存中等待稍后刷新。如果您在执行此操作后尝试sync或umount文件系统,则仍需要几分钟时间才能刷新挂起的写入。

    我的假设是,这是因为 ISO 上存在旧的 ISO 9660 文件系统。有人可以确认这个文件系统很慢吗?

    它不是。作为一个只读文件系统,它在 20 世纪 90 年代就完成了这项工作,并且对于现代 CPU 来说并没有慢多少。(至少与 exFAT 相比,exFAT 无论如何都不是现代文件系统——exFAT 甚至不是基于范围的,它仍然像 20 世纪 80 年代的前辈一样使用簇链)。

    但除此之外,“刷新”磁盘映像通常意味着以 1:1 的方式逐个扇区写入它,在这种情况下,文件系统根本不参与该过程 - 整个文件系统结构只是作为一系列连续的扇区进行复制,而无需任何解释它的尝试。将例如 1GB 图像写入磁盘的过程gnome-disks应该花费完全相同的时间,无论该图像的内容如何。

    (一个例外是程序并不真正“刷新”或“写入”图像,而是将其内容提取到新准备的文件系统中(Rufus 就是一个这样的例子)。在这种情况下,新文件的“速度”目标文件系统(几乎总是 FAT32)比源文件系统更重要,因为更新数据结构比读取它们慢——而且通常,提取几百个较小的文件确实比复制单个大文件明显慢——但即使文件系统结构不是最理想的,例如 ISO 9660 和 exFAT 之间的差异在任何类型的现代 CPU 上都很难注意到。)

    编辑:我还尝试使用以下命令刷新 ISO:

    在这个特定的示例中,您没有指定块大小,bs=因此我怀疑至少部分问题是“dd”默认一次仅读取和写入 512 字节(单个扇区)。周围的东西bs=1M通常会走得更快一些。

    我还想知道是否可以使用较新的文件系统(例如 exFAT)的分区制作 ISO。如果不是,为什么 ISO 仍然是操作系统安装程序映像的标准格式?如果可能的话,为什么有人会决定不使用 exFAT 并使用 ISO 9660 呢?

    ISO 9660 仍在使用,因为“ISO”映像首先是CD/DVD映像,并且这是它们的标准文件系统。(尽管如果它们是 DVD 映像,那么它们将使用较新的 UDF 而不是 ISO 9660。例如,任何最新的 Windows.iso 实际上都是仅具有“存根”ISO 9660 文件系统的 UDF 映像。)

    您所拥有的 Linux 映像恰好已准备好isohybrid同时用作可启动 CD/DVD 光盘(使用 El Torito 标准)和可启动 HDD(使用典型的 BIOS 和 UEFI 启动格式),并使用不同的创造性交错涉及到的分区表;但一般而言,“ISO”映像旨在刻录到 CD 中。

    所以真正的问题是为什么操作系统安装映像仍然制作为 CD/DVD 映像而不是常规磁盘映像。(我不知道答案。)

    至于使用其他文件系统的 CD/DVD,由于 CD/DVD引导过程的工作方式,在技术上可能与 UDF 相同 - 它在技术上应该是可能的,但至少特定扇区 0x11 需要看起来像有效的 ISO 9660 PC 固件将 CD 识别为可引导的“引导记录”,因此新的文件系统必须封装在虚拟的 ISO 9660 结构中,并且操作系统需要预期并识别这一点 - 但它可能不会。

    • 2

相关问题

  • zip 文件中的文件名无效

  • 如何从 /sys 的后端查看日志

  • fuser 不显示打开文件的进程的 PID

  • 使用 Thunar 时无法跨文件系统边界丢弃文件

  • 是否可以在客户端中使用没有文件系统的 FTP?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve