工作性质决定我需要经常给一些设备装系统。不管是windows还是Linux使用U盘作为介质是最方便的。在Linux下我用dd将一个iso文件整体写入了一个U盘,装系统很顺利,可是我将写入iso后的U盘恢复成正常的fat32或者ntfs时候出现了一些问题。
常规操作是我用fdisk分区,并且用mkfs格式化成正确的格式,可是系统仍旧能够识别这是一个ubuntu光盘,卷标也显示我当时烧录iso时候对应的文件名字。按道理来说fdisk将新的分区表数据写入了磁盘最开头的512字节(MBR分区表),然后剩余的空间对于计算机开说就是空白的。可是多次常识iso的卷标依旧存在,阴魂不散的现象让人特别费解。
没有专业研究过分区表的格式,根据直觉我猜测卷标应该是存在磁盘头部的一个位置,而这个位置fdisk是不能修改的,而系统通过留存的iso卷标将这个磁盘判断为一个光盘。所以我尝试用dd将真个磁盘清零后重新写分区表:
dd if=/dev/zero of=/dev/sdb
fdisk /dev/sdb
经过dd将磁盘整体清洗一遍确实问题解决。但是有个问题就算挺费时间的。就像刚才我猜测卷标问题因该出在磁盘首部,所以我后来尝试用dd写入一定时间后ctrl+c中断执行,再用fdisk重写分区表就恢复正常。或者另外一个办法,dd之后由于mbr被破坏,插入windows会提示无法识别,用windows重新格式化一下也可以恢复正常。
上边是野路子解决了dd写入iso后卷标不能消掉的方案。下边的链接里边更加专业的写了这个问题的原因以及高手们的解决方法。
Reference: