zoukankan      html  css  js  c++  java
  • Linux 系统下使用dd命令备份还原MBR主引导记录


    https://en.wikipedia.org/wiki/Master_boot_record
    https://www.cyberciti.biz/faq/howto-copy-mbr/
    https://www.cyberciti.biz/faq/linux-clearing-out-master-boot-record-dd-command/
    https://wiki.archlinux.org/index.php/Partitioning

    要复制MBR,只需使用dd命令。dd命令也适用于所有Linux发行版和其他类UNIX操作系统。
    主引导记录(MBR)是512字节的引导扇区,它是硬盘的分区数据存储设备的第一扇区。
    MBR总大小: 446 + 64 + 2 = 512

    • 446 bytes - Bootstrap(446 or ...)
    • 64 bytes - 分区表(4 x 16)
    • 2 bytes - 签名(2)

    使用$ mbr.backup.file的446字节仅覆盖或恢复/dev/XYZ MBR的引导代码。
    使用$ mbr.backup.file的512字节会覆盖或恢复/dev/XYZ 完整MBR(包含引导代码和驱动器的分区表)。

    =============
    ==== dd 命令备份磁盘MBR
    $ sudo dd if=/dev/sda of=/tmp/bksdambr.bak bs=512 count=1
    dd命令备份恢复MBR;
    $ sudo dd if=/tmp/bksdambr.bak of=/dev/sda bs=512 count=1

    将备份恢复到任何sdb:命令将保留分区模式,仅恢复446字节的Bootstrap。
    $ sudo dd if=/tmp/bksdambr.bak of=/dev/sdb bs=446 count=1
    or 或者使用复制的方式
    $ sudo dd if=/dev/sda of=/dev/sdb bs=446 count=1

    仅还原分区表,跳过mbr
    $ sudo dd if=/tmp/bksdambr.bak of=/dev/sda bs=66 skip=446 count=1


    ==== sfdisk 命令备份主分区表和扩展分区表
    它创建一个可以在文本编辑器中读取的文件,或者sfdisk可以使用此文件来还原主分区表或扩展分区表。
    要备份分区表/dev/sda,请输入:
    $ sudo sfdisk -d /dev/sda > /tmp/sda.bak

    要还原,请输入:命令将还原扩展分区。
    $ sudo sfdisk /dev/sda < /tmp/sda.bak

    ==== 完整的操作,比如双硬盘

    通过fdisk -l命令能看到2快硬盘,分别是:
    $ sudo fdisk -l
    Disk /dev/sdb: 223.6 GiB, 240057409536 bytes, 468862128 sectors
    Disk model: OCZ-TRION100 (SSD 240Gb固态硬盘)
    ...
    Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
    Disk model: WDC WD10JPVT-60A (HDD 1T机械硬盘)
    ...
    $

    分别备份MBR和扩展分区架构
    1. 备份 SSD(/dev/sdb) 的 MBR
    $ sudo dd if=/dev/sdb of=/tmp/bkSSDmbr.bak bs=512 count=1
    $ sudo sfdisk -d /dev/sdb > /tmp/bkSSD.sfdisk
    2. 备份 HDD(/dev/sda) 的 MBR
    $ sudo dd if=/dev/sda of=/tmp/bkHDDmbr.bak bs=512 count=1
    $ sudo sfdisk -d /dev/sda > /tmp/bkHDD.sfdisk
    注:这里备份文件没有使用(/dev/sda)这样的设备号,原因是使用不同的系统登录,这2个sda和sdb可能会互换。

    恢复MBR和扩展分区架构,比如恢复机械硬盘
    $ sudo dd if=bkHDDmbr.bak of=/dev/sda
    $ sudo sfdisk /dev/sda < bkHDD.sfdisk


    ==== 删除 MBR...
    Option #1: Command to delete mbr including all partitions
    Open a terminal and type the following command command to delete everything:
    $ sudo dd if=/dev/zero of=/dev/sdc bs=512 count=1

    Option #2: Command to delete mbr only
    The following command will erase mbr, but not your partitions:
    $ sudo dd if=/dev/zero of=/dev/sdc bs=446 count=1
    ============

    https://wiki.archlinux.org/index.php/Partitioning_(简体中文)
    https://wiki.archlinux.org/index.php/Partitioning
    https://wiki.archlinux.org/index.php/Partitioning#GUID_Partition_Table
    https://en.wikipedia.org/wiki/Master_boot_record

    查看提取的引导记录

    https://blog.csdn.net/mao0514/article/details/51218522

    dd if=/dev/sdc of=/tmp/mbr.bin bs=446 count=1 提取出。

    hexdump -C /tmp/mbr.bin 查看

  • 相关阅读:
    OPENSSH 详解
    红帽RHEL8和7有什么区别(Centos8与7参照redhat)
    RHEL8和CentOS8怎么重启网络
    Redhat7.x Openssh、Openssl升级
    RHEL7.x更换更换Centos yum源
    NTP时间同步
    2019-12-17:权限维持,笔记
    2019-12-13:提权学习,笔记
    2019-12-11:kali linux工具Msfvenom 命令自动补全
    2019-12-10:win7,win12提权练习
  • 原文地址:https://www.cnblogs.com/sztom/p/10627405.html
Copyright © 2011-2022 走看看