使用dd写入非可引导ISO镜像后,如何解除U盘只读状态以添加文件?
使用dd写入非可引导ISO镜像后,如何解除U盘只读状态以添加文件?
嘿,这个问题我碰到过好多次了!你之所以没法往U盘里加文件,根本不是dd的参数有问题——ISO 9660本身就是只读的光盘文件系统,你用dd把整个ISO镜像直接写到U盘上,等于把U盘的分区格式改成了这个只读格式,自然没法写入新内容。
给你两个实用的解决办法,看你需求选:
方法一:提取ISO文件+重新格式化U盘(最推荐)
这个方法最直接,适合大多数场景,步骤如下:
先把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格式化U盘为可读写文件系统
注意:这会清空U盘所有数据!一定要确认/dev/sdd是你的U盘(可以用lsblk命令核对):# 如果U盘已经被挂载,先卸载 umount /dev/sdd* # 格式化成FAT32(兼容性最好,Windows/Linux/macOS都能识别) mkfs.vfat /dev/sdd # 如果你只在Linux用,也可以格式化成EXT4:mkfs.ext4 /dev/sdd复制文件到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




