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


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

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

    这个命令的作用是将名为"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
    
    • 1

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

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

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

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

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

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

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

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

    (6)备份与恢复MBR

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

    (7)备份软盘

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

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

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

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

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

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

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

    (11)销毁磁盘数据

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

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

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

    (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
    #通过比较以上命令输出中所显示的命令执行时间,即可确定系统最佳的块大小。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (14)修复硬盘:

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

    (15)利用netcat远程备份

    dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234
    #在源主机上执行此命令备份/dev/hda
    
    • 1
    • 2
    netcat -l -p 1234 | dd of=/dev/hdc bs=16065b
    #在目的主机上执行此命令来接收数据并写入/dev/hdc
    
    • 1
    • 2
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    MQ系列4:NameServer 原理解析
    软考系列(系统架构师)- 2012年系统架构师软考案例分析考点
    Java中实现在线语音识别(科大讯飞免费的SKD)、SDK下载和IDEA项目搭建、成功运行【完整代码】
    Ubuntu20.04 下编译和运行 FreeSWITCH的问题汇总
    WinForm之TCP客户端通讯
    ViT:Vision transformer的cls token如何实现分类?
    CH559L单片机ADC多通道采样数据串口打印案例
    Android UI界面去除标题栏的方法
    为什么我们使用记录日志(如log.info())而不用sout?
    AVL树的实现及原理
  • 原文地址:https://blog.csdn.net/weixin_43576565/article/details/132622297