20200511
dd
制做文件或备份功能(基本直接读取扇区)
dd if="input file" of="output_file" bs="block_size" count="number"
if 就是Inputfile ,可以是设备
of 主是outputfile, 可以是设备
bs 设置一个block大小默认512byte(扇区大小)
count 多少个bs
复制/etc/passwd到/tmp/passwd.back中
dd if=/etc/passwd of=/tmp/passwd.back #
dd if=/dev/sr0 of=/tmp/system.iso #复制刻录好的光盘的内容备份成为镜像文件
把上面的iso刻录到U盘,假设/dev/sda为u盘
dd if=/tmp/system.iso of=/dev/sda #可以linux镜像文件写样做u盘就具有可启动功能了,然后可以安装Linux系统
将/boot文件系统通过dd备份下来,假设/boot挂载设备为/dev/vda2
dd if=/dev/vda2 of=/tmp/vda2.img #文件大小与磁盘大小一样,哪怕磁盘只使用50%
将/dev/vda2完整地复制到另一个硬盘分区上,假设我们已经分区好一个比vda2大的分区sda1
不需要格式化sda1
dd if=/dev/vda2 of=/dev/sda1
xfs_repair -L /dev/sda1 #先清楚一堆log
#] uuidgen
948gjei-egeg-48g05656-56
xfs_admin -U 948gjei-egeg-48g05656-56 /dev/sda1 #这两行是用于创建新的uuid,因为dd复制时连同uuid都复制过来了
mount /dev/sda1 /mnt #挂载发现/mnt与/boot一模一样
xfs_growfs /mnt #系统放大空间
dd是将原本旧的硬盘分区上面的扇区数据整个复制过来,连同超级区块,启动扇区元数据等,所以不用格式化
如果想创建两块一模一样的磁盘,只要执行类似 dd if=/dev/sda of=/dev/sdb, sdb不用分区与格式化,因为命令包括MBR与分区表都复制过sdb了
cpio
可以备份任何东西,包括设备文件,要结合find与管道 |
也可以将系统数据完整的备份到磁带
备/boot下的所有文件到/tmp
cd /
find boot | cpio -ocvB > /tmp/boot.cpio #需要去掉根目录,与tar 的-P一个道理