在Linux 下制作启动盘以及dd命令使用

1、在Linux 下制作启动盘,可使用如下命令:

dd if=boot.img of=/dev/fd0 bs=1440k

这个命令的作用是将名为"boot.img"的文件写入到软盘驱动器(/dev/fd0)中。其中:

  • dd是一个用于复制和转换文件的命令。
  • if=boot.img指定了输入文件的路径和名称,即要复制的源文件为"boot.img"。
  • of=/dev/fd0指定了输出文件的路径和名称,即要将源文件复制到的目标位置为软盘驱动器(/dev/fd0)。
  • bs=1440k指定了块大小为1440KB,即每次复制的数据块大小为1440KB。
    可以不指定bs参数。如果未指定bs参数,dd命令将使用默认的块大小进行复制操作。默认的块大小可能因操作系统和dd命令的版本而异。
    在某些情况下,使用默认的块大小可能是合适的,特别是当您不需要显式地控制复制操作的块大小时。dd命令会根据默认块大小自动进行复制
    然而,如果您希望显式地指定复制操作的块大小,可以使用bs参数来设置。通过指定适当的块大小,您可以根据需要进行性能优化或满足特定的要求。
    请注意,在执行dd命令时,无论是否指定bs参数,都要小心确保目标位置上的数据不会被意外覆盖或损坏。在使用dd命令之前,请确保您了解其作用并谨慎操作。

综合起来,先通过ftp上传"boot.img"文件即镜像文件以及新建磁盘用于存放启动盘文件(虚拟机的话添加硬盘就行,镜像传过去后把镜像盘意外的盘移除即可直接访问系统启动盘),这个命令的作用是将"boot.img"文件的内容写入到软盘驱动器中,以便在需要时可以从软盘启动计算机或加载特定的引导程序。

请注意,执行此命令需要具有足够的权限,并且要确保目标软盘驱动器(/dev/fd0)可用且没有重要的数据,因为该命令会覆盖目标位置上的数据。在使用此命令之前,请确保您了解其作用并谨慎操作。

2、Linux dd 命令

Linux dd 命令用于读取、转换并输出数据。

dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

(1)参数说明:

  • if=文件名:输入文件名,默认为标准输入。即指定源文件。
  • of=文件名:输出文件名,默认为标准输出。即指定目的文件。
  • ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
  • obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
  • bs=bytes:同时设置读入/输出的块大小为bytes个字节。
  • cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
  • skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
  • seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
  • count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
  • conv=<关键字>,关键字可以有以下11种:
  1. conversion:用指定的参数转换文件。
  2. ascii:转换ebcdic为ascii
  3. ebcdic:转换ascii为ebcdic
  4. ibm:转换ascii为alternate ebcdic
  5. block:把每一行转换为长度为cbs,不足部分用空格填充
  6. unblock:使每一行的长度都为cbs,不足部分用空格填充
  7. lcase:把大写字符转换为小写字符
  8. ucase:把小写字符转换为大写字符
  9. swap:交换输入的每对字节
  10. noerror:出错时不停止
  11. notrunc:不截短输出文件
  • sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
  • –help:显示帮助信息
  • –version:显示版本信息

3、dd应用实例

(1)将本地的/dev/hdb整盘备份到/dev/hdd

dd if=/dev/hdb of=/dev/hdd bs=4M status=progress

(2)将/dev/hdb全盘数据备份到指定路径的image文件

dd if=/dev/hdb of=/root/image

(3)将备份文件恢复到指定盘

dd if=/root/image of=/dev/hdb

(4)备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径

dd if=/dev/hdb | gzip > /root/image.gz

(5)将压缩的备份文件恢复到指定盘

gzip -dc /root/image.gz | dd of=/dev/hdb

(6)备份与恢复MBR

## 1、备份磁盘开始的512个字节大小的MBR信息到指定文件:
dd if=/dev/hda of=/root/image count=1 bs=512
# count=1指仅拷贝一个块;bs=512指块大小为512个字节。
## 2、恢复:

dd if=/root/image of=/dev/had
#将备份的MBR信息写到磁盘开始部分

(7)备份软盘

dd if=/dev/fd0 of=disk.img count=1 bs=1440k #(即块大小为1.44M)

(8)拷贝内存内容到硬盘

dd if=/dev/mem of=/root/mem.bin bs=1024 #(指定块大小为1k)  

(9)拷贝光盘内容到指定文件夹,并保存为cd.iso文件

dd if=/dev/cdrom(hdc) of=/root/cd.iso

(10)增加swap分区文件大小

#第一步:创建一个大小为256M的文件:
dd if=/dev/zero of=/swapfile bs=1024 count=262144
#第二步:把这个文件变成swap文件:
mkswap /swapfile
#第三步:启用这个swap文件:
swapon /swapfile
#第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap文件:
/swapfile    swap    swap    default   0 0

(11)销毁磁盘数据

dd if=/dev/urandom of=/dev/hda1
#注意:利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。

(12)测试硬盘的读写速度

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
#通过以上两个命令输出的命令执行时间,可以计算出硬盘的读、写速度。

(13)确定硬盘的最佳块大小:

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
#通过比较以上命令输出中所显示的命令执行时间,即可确定系统最佳的块大小。

(14)修复硬盘:

dd if=/dev/sda of=/dev/sda 或dd if=/dev/hda of=/dev/hda
  • 当硬盘较长时间(一年以上)放置不使用后,磁盘上会产生magnetic flux point,当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。并且这个过程是安全、高效的。

(15)利用netcat远程备份

dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234
#在源主机上执行此命令备份/dev/hda
netcat -l -p 1234 | dd of=/dev/hdc bs=16065b
#在目的主机上执行此命令来接收数据并写入/dev/hdc
netcat -l -p 1234 | bzip2 > partition.img
netcat -l -p 1234 | gzip > partition.img
#以上两条指令是目的主机指令的变化分别采用bzip2、gzip对数据进行压缩,并将备份文件保存在当前目录。

#将一个很大的视频文件中的第i个字节的值改成0×41(也就是大写字母A的ASCII值)
echo A | dd of=bigfile seek=$i bs=1 count=1 conv=notrunc

猜你喜欢

转载自blog.csdn.net/weixin_43576565/article/details/132622297
今日推荐