dd只负责把ISO镜像写入U盘, 但能否以U盘方式启动关键看ISO文件处理过没有.
传统的ISO文件是专门为光盘设计的, 直接写入U盘是无法启动的, 写成的U盘在一般操作系统如Windows下也看不见内容(当然linux下强行指定iso9660还是可以mount), 只有刻入光盘才能以光盘方式启动, 并且看见内容.
主流发行版的ISO文件已经处理过, 是hybrid格式, 即既能刻光盘用, 也能写U盘来引导(内容还是看不见). 最明显的变化是第1个扇区加了一个引导记录, 即头512个字节有内容且第0x1fe和0x1ff两个字节是0x55 0xAA, 这样BIOS启动时能读入这段引导记录并运行, 加载isolinux.bin, 进而完成后续引导. 而传统的ISO格式头512个字节全是0x00, BIOS如发现硬盘/软盘/U盘的首扇全0会忽略这个设备, 更谈不上引导.
另主流发行版也只是这些年才加了hybrid的ISO格式, 拿CentOS来说, 6有, 而CO4/5的所有ISO都没有, 需要U盘引导时必须dd一个专门的diskboot.img文件. 即便是CO6, 也并非全部ISO都能引导U盘, DVD2.iso就不可以.
【 在 kozz (FeiFeiRun) 的大作中提到: 】
: dd为啥不行?一直用dd做的。。
: dd bs=4M if=/PATH/TO/ubuntu.iso of=/dev/sdb