linux下创建可引导的U盘系统,使用dd命令进行Linux的ghost

1,通过iso创建可引导的U盘系统。

1.0,格式化U盘为FAT32格式

linux下能够使用命令:

mkfs.vfat U盘的设备路径

比如:

mkfs.vfat /dev/sdb

当中U盘的路径能够通过命令df来查看(df -h)

扩展:mkfs命令使用方法:以特定文件系统格式化分区,文件系统通过直接在命令后面加点和文件系统名来指定(命令行下能够通过双击Tab键来查看当前系统都支持创建那些类型的文件系统)

mkfs.vfat ->创建fat32分区

mkfs.ntfs ->创建ntfs分区

mkfs.ext2 ->创建ext2分区

mkfs.ext4 ->创建ext4分区

1.1,最简单的方法(但有些情况会失败,并且U盘不能再放其它文件,须要格式化后才干再使用):

dd if=ISO的路径 of=U盘的设备路径

比如:

dd if=CentOS-6.5-LiveDVD.iso of=/dev/sdb4

1.2,使用工具

非常多工具都能够完毕这个工作,Windows下的UltraISO就能够,感谢王涛,你懂的。

这里推荐UNetBootin,它是一个跨平台的开源小工具,界面非常友好,这里不赘述了。(2014年6月11日公布的“深度启动盘制作工具”的后端使用的就是UNetBootin)

http://unetbootin.sourceforge.net/

1.3,通过iso引导或安装系统

重新启动机器,选择使用USB设备引导。

假设写入的是一个Live形式的Linux系统(类似WinPE),那么就能够引导一个光盘/U盘系统。

2,创建与恢复磁盘镜像

有时候须要大规模安装一样的系统(如安装hadoop机群),一个机器一个机器的安装配置明显不现实,能够在一台机器上装好配置好,然后创建镜像,在其它机器上直接导出镜像就能够了。

能够使用第三方工具Ghost4Linux,可是它功能非常受限制,有时候会失效,这里介绍怎样使用linux内置命令dd来完毕这个任务。

2.0,使用U盘/光盘启动一个系统

理论上能够不这样做,而直接使用硬盘系统制作镜像,可是这样的使用方法仅局限于备份非关键位置分区。详细来说:(1)假设要创建一个关于操作系统的镜像,在创建镜像的时候假设系统的某个重要文件正优点于一个不稳定的状态,你创建出来的镜像在其它机器上可能启动不了。(2)还有一种常见的问题是,须要创建的镜像是针对整个磁盘的而不是对某个分区的,那么显然不能让输出的镜像文件位于正在被备份的本地磁盘上。

所以理论上还能够选择将要操作(备份/还原)的磁盘挂载再还有一台机器上,作为从盘来操作。

2.1,创建镜像

创建镜像并写入U盘上的某个文件

sudo dd bs=BYTES if=输入磁盘 of=输出文件

比如:

sudo dd bs=128K if=/dev/sda1 of=ghost.img

当中bs參数表示一次操作多少个字节,默认是512字节,适当大一点能够提高效率,可是须要注意最好是512的倍数,由于磁盘读写的最小单位是扇区,而一个扇区是512字节。详细參数能够使用命令dd --help来查看,个人觉得最重要的就是“K=1024,KB=1000”

2.1.1,压缩镜像

假设镜像非常大,能够考虑压缩,能够创建后使用tar压缩,也能够创建时压缩。

sudo dd bs=128K if=/dev/sda1 | gzip > ghost.img.gz

sudo dd bs=128K if=/dev/sda1 | bzip2 > ghost.img.bz2

gzip快,bzip2小,看需求决定。

博主实測表明:不压缩创建的镜像大小为磁盘大小。。。。。必须压缩

不压缩时bs=128K的速度约为284M/s,採用gzip bs=128K的速度约为113M/s,採用gzip bs=512K的速度约为120M/s,採用gzip bs=1M的速度约为130M/s,採用gzip bs=10M的速度约为128M/s。

这里的博主详细数据可能不具有太大的參考价值,博主仅仅是想以此简单说明一下压缩和bs值对于速度的影响情况。

所以:建议採用1M或2M作为bs值,太小速度慢,太大没意义。

2.2,恢复镜像

用U盘/光盘启动其它机器,将镜像写入。

sudo dd bs=128K if=ghost.img of=/dev/sda1

2.2.1,恢复压缩镜像

当然能够现解压再依照上面的方法来做,还能够一遍解压一遍写入:

gzip -dc ghost.img.gz | dd bs=128K of=/dev/sda1

bzcat ghost.img.bz2 | dd bs=128K of=/dev/sda1

原载于http://blog.csdn.net/yanxiangtianji

转载请注明出处


下面来自:http://blog.csdn.net/shendl/article/details/7384755

提醒:

       假设你把镜像恢复到还有一台计算机上,你可能会发现你的网卡是eth1,而不是eth0。这是由于

/etc/udev/rules.d/70-persistent-net.rules   文件把你做镜像的计算机的网卡作为eth0登记了。  

     假设你的网络脚本对eth0进行了处理,而没有对eth1进行处理,那么不改动网络脚本,你可能就无法上网了。

    或许你会希望在做镜像之前,先删除 /etc/udev/rules.d/70-persistent-net.rules 文件(博主注:这个文件记录pci设备标示与显示的设备名称的关系,启动时自己主动检測,若不存在会自己主动依据当前设备连接情况生成新的相应文件,能够放心大胆删除)。这样你恢复镜像时,网卡的名字就是eth0(博主注:假设你的设备有不仅仅一块网卡,那么对于某些情况还是须要手动调整)。就不会造成你在恢复后的计算机上无法上网的问题了。

上一篇:【Java面试宝典】深入理解JAVA虚拟机


下一篇:简化实现动态行列转置的SQL