You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用dd写入非可引导ISO镜像后,如何解除U盘只读状态以添加文件?

使用dd写入非可引导ISO镜像后,如何解除U盘只读状态以添加文件?

嘿,这个问题我碰到过好多次了!你之所以没法往U盘里加文件,根本不是dd的参数有问题——ISO 9660本身就是只读的光盘文件系统,你用dd把整个ISO镜像直接写到U盘上,等于把U盘的分区格式改成了这个只读格式,自然没法写入新内容。

给你两个实用的解决办法,看你需求选:

方法一:提取ISO文件+重新格式化U盘(最推荐)

这个方法最直接,适合大多数场景,步骤如下:

  1. 先把ISO里的文件全部提取出来
    先挂载ISO镜像,把里面的内容复制到本地目录:

    # 创建临时挂载目录
    mkdir /tmp/iso_mount
    # 挂载ISO镜像(loop参数表示挂载文件作为块设备)
    mount -o loop /root/test/test.iso /tmp/iso_mount
    # 创建目录存提取的文件
    mkdir /tmp/iso_files
    # 复制所有文件(包括隐藏文件)
    cp -r /tmp/iso_mount/. /tmp/iso_files/
    # 卸载ISO镜像
    umount /tmp/iso_mount
    
  2. 格式化U盘为可读写文件系统
    注意:这会清空U盘所有数据!一定要确认/dev/sdd是你的U盘(可以用lsblk命令核对):

    # 如果U盘已经被挂载,先卸载
    umount /dev/sdd*
    # 格式化成FAT32(兼容性最好,Windows/Linux/macOS都能识别)
    mkfs.vfat /dev/sdd
    # 如果你只在Linux用,也可以格式化成EXT4:mkfs.ext4 /dev/sdd
    
  3. 复制文件到U盘
    挂载U盘,把提取的ISO文件和你要加的新文件一起拷进去:

    mkdir /tmp/usb_mount
    mount /dev/sdd /tmp/usb_mount
    # 复制提取的ISO文件
    cp -r /tmp/iso_files/. /tmp/usb_mount/
    # 复制你要添加的文件,比如:
    # cp /path/to/your/file1.txt /tmp/usb_mount/
    # cp /path/to/your/file2.zip /tmp/usb_mount/
    # 完成后安全卸载U盘
    umount /tmp/usb_mount
    

方法二:创建可追加写入的ISO镜像(适合特殊需求)

如果你非要保留ISO的格式,也可以创建一个支持追加写入的ISO镜像,再写到U盘:
不过这个方法相对复杂,而且不是所有系统都支持可追加的ISO,所以只推荐给有特殊需求的情况:

# 用xorriso创建可追加的ISO镜像
xorriso -as mkisofs -r -J -o /root/test/writable_test.iso -iso-level 3 -allow-leading-dots -input-charset utf-8 /tmp/iso_files/
# 然后把这个新的可追加ISO写到U盘(同样会清空U盘)
dd if=/root/test/writable_test.iso of=/dev/sdd bs=4096
# 之后要追加文件的话,需要用xorriso工具往ISO里添加,再重新写入U盘

总结一下:如果只是要把ISO里的文件放到U盘里还能加新文件,方法一绝对是最简单靠谱的。

备注:内容来源于stack exchange,提问作者antonio1

火山引擎 最新活动