2005-03-30 21:15:00 wldandanpig 阅读数 1786

通过硬盘镜像启动Linuxwinxp)的试验

1.试验目的

       1.熟悉通过dd获得硬盘映像后,再部署出去后让linux的启动

       2.熟悉ramdisk的原理及制作

       3.解决节点上安装不同操作系统的问题

2.试验环境

     浪潮NF180服务器1台,配置如下:Linux操作系统为2.4.20-8smp,

     浪潮NF260服务器1台,配置如下:Linux操作系统为2.4.20-15smp

一根双绞线。

NF180作为NFSdhcp)的服务器(文中为server),

NF260作为启动的客户端(文中为client

3.试验原理

     请查阅PXENFS原理

4.试验过程

1).配置server端的dhcp服务

dhcp服务器IP10.151.11.149

PXE启动的客户端mac地址为00:0C:76:AD:94:3B

PXE启动的客户端IP10.151.11.176

配置/etc/dhcpd.conf文件,配置如下(红色标识为关键修改部分)

####################################

deny unknown-clients;

option subnet-mask 255.255.0.0;

option broadcast-address 10.151.255.255;

option domain-name "langchao";

option routers 10.151.11.149;

ddns-update-style none;

subnet 10.151.0.0 netmask 255.255.0.0 {

      group{

         host node{

                   hardware ethernet 00:0C:76:AD:94:3B;

                   fixed-address 10.151.11.176;

                   filename "pxelinux.0";

                }

           }

}

####################################

配置完毕后,使用 service dhcpd start 启动dhcpd服务。

 

 

 

 

 

 

 

 

 

 

 

 

2).配置server端的tftp服务

     linux内核自带的tftp-server即可

通过xinetd来使用tftp服务,我的/etc/xinetd.conf文件如下

####################################

service tftp

{

        Disable                 = no

socket_type             = dgram

        proctocol               = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /tftpboot

        per_source              = 11

        cps                     = 100 2

        flags                   = Ipv4

}

####################################

配置完毕后,使用service xinetd start 启动tftp服务。

 

 

 

 

 

 

 

 

3).配置server端上client启动时需要的文件

server上建立目录 /tftpboot , /usr/bin/syslinux/pxelinux.0(如没有syslinux,则需要先安装RPM包)拷贝到/tftpboot/, pxelinux.0为启动文件,同时在/tftpboot下新建一个pxelinux.cfg目录,客户端启动时会在此目录下找与其IP相应的配置文件,该文件的名称规则为IP地址的16进制的输出(比如客户端通过dhcp得到的IP10:151:11:176,则启动配置文件名为0A970BB0),文件格式为

########################

            DEFAULT linux

PROMPT 0

LABEL linux

KERNEL vmlinuz

append initrd=initrd rw root=/dev/ram0 init=/linuxrc

####################################################

 

 

 

 

4).制作RamDiskinitrd image

Ram:内存,Disk:磁盘,RamDisk就是指使用你的一部分内存空间来模拟出一个硬盘分区,实际是从内存中划出一部分作为一个分区使用,换句话说,就是把内存一部分当做硬盘使用,你可以向里边存文件。

拷贝client端原本的/boot/ initrd-2.4.21-15.ELsmp.img作为启动的img(后面的image)

################################################

          cd /boot

          cp –a initrd-2.4.21-15.ELsmp.img /tftpboot/initrd.img

           mv initrd.img initrd.gz

          gzip –d initrd.gz

          mount –o loop initrd /tmp

          cd /tmp

###############################################

image中添加命令

   /bin或者/sbin或者/usr/sbin下的命令拷贝到/tmp/bin下(使initrd中包括这些命令)

   按级别分:

       bash,chroot,init这是在启动时必须的命令;

       fdiskinsmodlsmodrmmod gunzipgzipbusyboxls这些是启动

clientlinux后可以使用的命令,根据需要可删除,也可加载别的命令;

将这些命令拷贝到/tmp/bin下,就需要拷贝这些命令对应的模块文件,才能保证正确使用,先使用ldd 查找当前命令需要的lib库,然后将其拷贝到/tmp/lib

该试验最后的模块文件为,其中libld)开头的文件为后来加入的。

-rwxr--r--    1 0        0          214188 2004-09-02  aic79xx.o

-rwxr--r--    1 0        0            5076 2004-09-02  diskdumplib.o

-rwxr--r--    1 0        0          115000 2004-09-02  ext3.o

-rwxr--r--    1 0        0           72380 2004-09-02  jbd.o

-rwxr-xr-x    1 0        0          103840  3 28 06:42 ld-linux.so.2

-rwxr-xr-x    1 0        0           19248  3 30 01:41 libacl.so.1

-rwxr-xr-x    1 0        0            7148  3 30 01:41 libattr.so.1

-rwxr-xr-x    1 0        0         1567768  3 28 06:41 libc.so.6

-rwxr-xr-x    1 0        0           14868  3 28 06:41 libdl.so.2

-rwxr-xr-x    1 0        0           11784  3 28 06:41 libtermcap.so.2

-rwxr--r--    1 0        0          142340 2004-09-02  scsi_mod.o

-rwxr--r--    1 0        0           19800 2004-09-02  sd_mod.o

 

 

 

 

c)添加驱动程序

    /tmp下 新建文件夹drv,添加client端的网卡和nfs驱动(如映象获得不是通过nfs传给服务器,还需要加载别的驱动,例如:如果将获得的硬盘映象存在SAN,则添加了HCA卡的驱动),该试验只需要添加nfs和网卡的驱动

    cd /lib/modules/2.4.20-8smp/

找到modules.dep文件(记录了各个驱动模块所依赖的模块)

###############################################

………………………………………

  /lib/modules/2.4.20-8smp/kernel/fs/nfs/nfs.o:   /lib/modules/2.4.20-8smp/kernel/fs/lockd/lockd.o /

        /lib/modules/2.4.20-8smp/kernel/net/sunrpc/sunrpc.o

   ………………………………………

表明nfs.o最先依赖sunrpc.o,其次lockd.o,然后在加载nfs.o

同理加载网卡的驱动,网卡的驱动一般就是百兆或者千兆

/lib/modules/2.4.20-8smp/kernel/drivers/net/e100/e100.o:

/lib/modules/2.4.20-8smp/kernel/drivers/net/e1000/e1000.o:

该试验中client端网卡为千兆网卡,故最后drv目录结构为:

    drwxr-xr-x    2 0        0            1024  3 28 07:39 net

drwxr-xr-x    2 0        0            1024  3 28 07:39 nfs

 

 

 

 

nfs目录下(nfs需要的驱动)

-rwxr--r--    1 0        0           75764  3 28 07:36 lockd.o

-rwxr--r--    1 0        0          125108  3 28 07:35 nfs.o

-rwxr--r--    1 0        0          107856  3 28 07:39 sunrpc.o

net目录下(网卡需要的驱动)

   -rwxr--r--    1 0        0           89684  3 30 01:38 e1000.o

 

 

 

 

d)修改/tmp/etc/inittab文件

      修改initrd中的etc/inittab文件,修改后如下:

###############################################

id:5:initdefault:

# System initialization.

si::sysinit:/bin/bash

#10:0:wait:/etc/rc.d/rc 0

#11:1:wait:/etc/rc.d/rc 1

#l2:2:wait:/etc/rc.d/rc 2

#l3:3:wait:/etc/rc.d/rc 3

#l4:4:wait:/etc/rc.d/rc 4

#l5:5:wait:/etc/rc.d/rc 5

#l6:6:wait:/etc/rc.d/rc 6

 

 

 

 

# Trap CTRL-ALT-DELETE

#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

 

 

 

 

# When our UPS tells us power has failed, assume we have a few minutes

# of power left.  Schedule a shutdown for 2 minutes from now.

# This does, of course, assume you have powerd installed and your

# UPS connected and working correctly.

#pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

 

 

 

 

# If power was restored before the shutdown kicked in, cancel it.

#pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

 

 

 

 

 

 

 

 

# Run gettys in standard runlevels

#1:2345:respawn:/sbin/mingetty tty1

#2:2345:respawn:/sbin/mingetty tty2

#3:2345:respawn:/sbin/mingetty tty3

#4:2345:respawn:/sbin/mingetty tty4

#5:2345:respawn:/sbin/mingetty tty5

#6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5

#x:5:respawn:/etc/X11/prefdm -nodaemon

###############################################

 

 

 

 

e)修改linuxrc

    可以将/tmp/drv下的驱动写在linuxrc中,这样当client启动时就自动加载驱动了;(试验中我是采用client启动后,手动insmod xxxx驱动的,效果一样)

    修改后的linuxrc文件为

###############################################

#!/bin/nash

 

 

 

 

echo "Loading scsi_mod.o module"

insmod /lib/scsi_mod.o max_scsi_luns=128

echo "Loading sd_mod.o module"

insmod /lib/sd_mod.o

echo "Loading diskdumplib.o module"

insmod /lib/diskdumplib.o

echo "Loading aic79xx.o module"

insmod /lib/aic79xx.o

echo "Loading jbd.o module"

insmod /lib/jbd.o

echo "Loading ext3.o module"

insmod /lib/ext3.o

echo Mounting /proc filesystem

mount -t proc /proc /proc

echo Creating block devices

mkdevices /dev

echo Creating root device

mkrootdev /dev/root

echo 0x0100 > /proc/sys/kernel/real-root-dev

echo Mounting root filesystem

 

 

 

 

 

 

 

 

#mount -o defaults --ro -t ext3 /dev/root /sysroot

#pivot_root /sysroot /sysroot/initrd

#umount /initrd/proc

 

 

 

 

exec /bin/chroot . /sbin/init < dev/console > dev/console 2>&1

###############################################

5).制作 vmlinuz

       这是client启动需要的内核,在client启动的配置文件中表明

制作过程如下:

    cd /root

    cp –a vmlinuz-2.4.20-8smp /tmp/vmlinuz

6).配置NFS服务

修改server端的/etc/exports文件,提供nfs服务

修改后文件内容为:

/mnt/sdb   *(rw,async,all_squash)

    service  nfs start启动nfs服务

7).启动client

配置client从网卡启动

启动成功后,配置client端的网卡,mountserver端的nfs目录

   busybox  ifconfig eth0 10.151.11.176 netmask 255.255.0.0

   busybox  mount –o nolock 10.151.11.149:/mnt/sdb /drv

8).制作client的硬盘映象

cd /drv

busybox dd if=/dev/sda bs=1024k | gzip –v9 > fs.gz

(………漫长的等待………)

9).分发client的硬盘映象

执行试验过程的步骤7)后

busybox dd if=fs.gz | gzip –v > /dev/sda

10).启动client

修改启动顺序,从硬盘启动,ok

11).更改client的操作系统

client上装了win2003server,装完后重复制作硬盘映象的过程

通过网卡重启client,成功。

 

 

 

 

5.试验总结

   试验过程中,出现了如下问题:

1.              有时候client启动时发现得到的IP并不是该server配置的IP,导致无法找到启动启动配置文件(根据IP规则得到的文件)

分析:由于该网段内还存在其他的dhcp服务器,所以出现此类问题

解决:用双绞线将两台机子对连,或者断开外部的网络,使局域网内只有server作为dhcp的服务器

2                     client通过pxe启动后,执行到Creating block devices(initrd中的linuxrc文件可知,执行mkdevices /dev过程),系统不往下走了;

分析:可能缺少部分驱动程序;

解决:第一次作试验的过程中,是从server端拷贝的initrd.img以及相应的驱动程序,发现好像少了一些驱动程序,考虑到serverclient硬件的差异,在第二次试验过程中,重新作initrd.img时,用client端自带的initrd.img作为ramdisk

发现此次的initrd中多出了一个aic79xx.o,在重启client后,发现错误解决。

3                     客户端通过pxe启动后,发现mount不上NFS

分析:权限没有设置正确;

解决:将/mnt/sdb 重新修改权限,问题解决

 

 

 

 

2017-11-08 12:25:00 weixin_34409703 阅读数 146
DD镜像是用DD命令直接将已有的硬盘镜象文件直接写到硬盘上(或指定分区)
dd命令是LINUX下的磁盘读写常用命令.

功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用
dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。

语法:dd 〔选项〕

if =输入文件(或设备名称)。

of =输出文件(或设备名称)。

ibs = bytes 一次读取bytes字节,即读入
缓冲区的字节数。

skip = blocks 跳过读入
缓冲区开头的ibs*blocks块。

obs = bytes 一次写入bytes字节,即写入
缓冲区的字节数。

bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

cbs = byte 一次转换bytes字节。

count=blocks 只拷贝输入的blocks块。

conv = ASCII 把EBCDIC码转换为ASCIl码。

conv = ebcdic 把ASCIl码转换为EBCDIC码。

conv = ibm 把ASCIl码转换为alternate EBCDIC码。

conv = block 把变动位转换成固定字符。

conv = ublock 把固定位转换成变动位。

conv = ucase 把字母由小写转换为大写。

conv = lcase 把字母由大写转换为小写。

conv = notrunc 不截短输出文件。

conv = swab 交换每一对输入字节。

conv = noerror 出错时不停止处理。

conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。

例1:要把一张软盘的内容拷贝到另一张软盘上,利用/tmp作为临时存储区。把源盘插入驱动器中,输入下述命令:

$ dd if =/dev/fd0 of = /tmp/tmpfile

拷贝完成后,将源盘从驱动器中取出,把目标盘插入,输入命令:

$ dd if = /tmp/tmpfile of =/dev/fd0

软盘拷贝完成后,应该将临时文件删除:

$ rm /tmp/tmpfile

例2:把net.i这个文件写入软盘中,并设定读/写缓冲区的数目。

(注意:软盘中的内容会被完全覆盖掉)

$ dd if = net.i of = /dev/fd0 bs = 16384

例3:将文件sfile拷贝到文件 dfile中。

$ dd if=sfile of=dfile

dd命令复制硬盘
--------------------------------------------------------------------------------

1)确保原盘和目的盘几何特性相同
2)成为超级用户
3)在用主盘的系统中输入touch /reconfigure,有主盘的系统需要/reconfigure文件,以便在重新启动时发现复制盘
4)输入init 0关闭系统
5)将复制盘连接到系统并开机
6)在OK提示符下输入boot
7)输入dd if=/dev/dsk/device-name of=/dev/dsk/device-name bs=blocksize (输入文件if是主盘设备,输入文件of是复制盘设备)
8)输入fsck /dev/rdsk/device-name (检测新的文件系统)
9)输入mount /dev/rdsk/device-name /mnt 加载复制盘的root文件系统。
10)编辑复制盘上的/etc/vfstab文件,指向正确的设备名。
11)输入umount/mnt ,卸载复制盘的root文件系统。
12)输入init 0关闭系统。
13)输入boot diskN -s以单用户模式引导复制盘。
14)输入sys-uconfig恢复配置复制盘,在该盘配置恢复后系统关闭。
15)输入boot diskN 引导复制盘
16)提供相关的系统信息。(HOSTNAME TIMEZONE IP...)
17)系统完成,即作为超级用户登录验证系统信息。

例:
#dd if=/dev/dsk/c0t0d0s2 of=/dev/dsk/c0t1d0s2 bs=100k
#fsck /dev/rdsk/c0t1d0s2
#mount /dev/rdsk/c0t1d0s2 /mnt
#cd /mnt/etc
#vi /etc/vfstab
#cd /;umount /mnt
#init 0
OK boot disk2 -s
#sys-unconfig

  OK boot disk2 -s



















本文转自东方之子736651CTO博客,原文链接:http://blog.51cto.com/ecloud/1342978 ,如需转载请自行联系原作者







2019-01-09 16:40:15 daicooper 阅读数 1353

公司邮件服务器的硬盘大小为500G,这个硬盘使用有些年限了,担心可能会出现老旧问题,导致数据丢失,因此,买了一块新的1T的硬盘。想通过硬盘镜像,把500G硬盘上的所有数据,包括linux 系统文件,全部复制到新硬盘中。

 

这里参考了网上的一些教程总结如下:

使用 Linux 系统的 dd 命令可以完成硬盘对硬盘的镜像。

dd if=/dev/sda of=/dev/sdb

注意:不要直接在计算机上用本地磁盘启动系统后执行 dd 命令生成本地磁盘的镜像。而应该使用livecd启动计算机。因为,计算机运行时会对系统盘产生大量写操作。 直接对运行中的系统盘生成的镜像,在恢复到其他硬盘上时,很可能会无法启动!因此,先制作启动 U 盘,这类似于 window PE。

1:在 widows 系统的电脑中制作启动 U 盘

windows 系统下先安装 UltraISO软件,再使用该软件制作 Linux 系统的 U 盘启动盘。

下载 软碟通(ultraISO) 软件. 下载地址:https://ultraiso.en.softonic.com/download

下载centos7LiveCD镜像 ,下载地址:http://mirrors.163.com/centos/7/isos/x86_64/

 先插入一只普通优盘(空间要大一些),软碟通软件 “文件”-->“打开”-->选择下载的 ISO镜像(CentOS-7-x86_64-LiveGNOME-1810.iso);

本地目录中 选择 U 盘的盘符。(本次测试时的 U 盘的盘符为 F)

点击 “启动“ -->“写入硬盘映像”

在弹出的  “写入硬盘映像”  栏目框中查看选择的信息是否正确,然后点击 “格式化” 按钮,格式化 U 盘,当格式化完成后再点击  “写入” 按钮。

当写入完成后  linux 系统的启动 U 盘就做好了。

【启动盘制作参考文档】:https://jingyan.baidu.com/article/49711c614d0971fa451b7c59.html

 

2:在启动U盘中 使用 dd 命令操作 磁盘镜像

电脑先接入新,旧 两块硬盘,再插入制作好的 启动 U 盘,然后通电后,按 “del” 键(不同的电脑,有不同的进入方式,本次测试的电脑是 按“delete”键) 进入 BIOS 设置界面。选择 Boot 方式为 U 盘 优先启动(不同的电脑设置的界面和选项不一样)。

这样就进入了 linux live gnome 系统。

切换到 root 用户。

查看磁盘状态:

执行 dd 命令: 

dd  if= /dev/sda of=/dev/sdb;

再开一个终端,在新开终端中输入:【killall -s SIGUSR1 dd 】查看复制过程

dd 复制过程需要等待相当长的一段时间。当复制完成时,新的硬盘就会有老硬盘中的所有数据了。

【硬盘镜像参考文档】:https://blog.csdn.net/xtggbmdk/article/details/82706380

 

3:大硬盘中磁盘分区的扩充

当 dd 命令完成后,老硬盘的所有数据都复制到了新硬盘上,但是,本次测试中老硬盘的文件系统的大小只有 500G。复制到新硬盘后新硬盘的文件系统大小也只有 500G ,而新硬盘中还剩余 500G 左右的空间没有挂载到文件系统中去,这样虽然也可以使用,但是硬盘空间会有些浪费。因此,需要把新硬盘中的文件系统扩展到 1T。

上面的这个例子可以看出sda这个设备至少还有一多半的空间没有使用。因为sda2分区是从64-60802柱面,而整个硬盘一共有121601个柱面,60802-121601都是自由空间

查看网上说法有两种实现思路:

第一种是:直接添加一个新的主分区 或是 逻辑分区,并把剩余的 500G全部划分到该分区中。

第二种是:把剩余的空间合并到现有的分区中。

但是直接用 extend 命令扩展分区是不行的,会提示没有剩余空间。这是因为当初划分磁盘空间的时候逻辑卷组VolGroup_lv_home的大小已经固定了。卷组的大小确定后是不能更改的。只有通过往卷组中添加物理卷来扩大卷组的空间。而物理卷要由新的 分区/磁盘 来创建

本次测试中,把剩余的空间合并到逻辑卷 /home 中:

1. 利用剩下的自由空间 创建一个物理分区

1)对于 MBR 类型的分区, 使用fdisk 命令:

(使用fdisk   /dev/sda,选择n来创建一个新的分区比如sda3,主分区还是逻辑分区对此例子无所谓)

     完成后需要重新启动。

输入【w】保存分区表后, 重启系统。

2)对于 GPT 类型的分区,使用parted 工具添加新的分区:

先安装 parted 工具:

可以看到 分区表类型为 GPT, 其中还有 500G 的硬盘空间容量未分配。

使用 mkpart 创建一个 GPT 类型的主分区。

新添加了一个新的分区 编号为4 。输入 【quit】退出 parted 工具。重启系统。

接下去的实验步骤只使用 MBR 分区类型的硬盘,GPT 分区类型的硬盘和 MBR 分区类型的硬盘接下去的操作步骤是一样的,只是(本次实验中 MBR 分区类型的硬盘新创建的主分区编号为:sda3. 而 GPT 类型的硬盘中新创建的主分区编号为 :sda4).

2.接下来创建sda3分区,创建为物理卷   (pvcreate   /dev/sda3) 

 使用【pvdisplay 】这个命令中 sda1 的路径,/dev/sda3这个路径可以参照  sda1 的路径, 一般都是在dev下。

3.为卷组 VolGroup 添加新的物理卷 sda3 来增大卷组的容量  (vgextend   VolGroup  /dev/sda3)

   使用【vgdisplay】来查看卷组名称

 

4.现在才能扩展逻辑卷的大小   (lvextend   -L   +463.8G   /dev/mapper/VolGroup-lv_home

    使用【lvdisplay】查看逻辑卷绝对路径

 

5.最后要使用resizefs2命令重新加载逻辑卷的大小才能生效。   ( resize2fs -p  /dev/mapper/VolGroup-lv_home)

 

【分区扩展参考文档】:

https://blog.csdn.net/qq_33233768/article/details/65437609

http://blog.sina.com.cn/s/blog_497f74bc01011z55.html

 

2012-12-03 14:57:12 mifan88 阅读数 3120

原文地址:http://blog.licess.org/linux-dd/

   虚拟块设备文件更通用的名称是硬盘镜像文件(Hard Disk Image),但不是所有的硬盘镜像文件都是虚拟块设备文件,例如,目前Ghost的GHO格式的镜像文件就不能成为虚拟机中的硬盘。

Linux的dd命令,可以用于生成虚拟块设备文件。既可以用于创建空镜像文件,也可以用于创建物理硬盘的镜像。

# dd if=/dev/hda of=/mnt/nebula/hda_dd.image4757130+0 records in4757130+0 records out
上面这个命令将IDE设备/dev/hda的内容复制到/mnt/nebula/hda_dd.image文件。参数if告诉dd从哪个文件读取数据,参数 of告诉dd读出的数据写入哪个文件中。注意,对于dd来说,输入和输出都是文件,dd做的只是文件拷贝工作,这得益于Unix/Linux下面将设备也抽象为特殊的文件。

一般来说设备文件有两种,一种是块设备,一种是字符设备。块设备的特点是可以随机读写(Random Access),比如内存、硬盘等。字符设备的特点是顺序读写(Sequential Access),比如鼠标,键盘,麦克风等。

前面说了如何生成物理硬盘的镜像,如果想生成空镜像文件(本文的主要目的),还需要一个特殊的设备。/dev/zero是Linux提供的一个特殊的字符设备,它的特点是可以永远读该文件,每次读取的结果都是二进制0。下面的命令可以生成一个100M的空镜像文件:

dd if=/dev/zero of=100M.img bs=1M count=100

除了前面已经解释的of和if参数,这次又出现了bs和count参数。bs=1M表示每一次读写1M数据,count=100表示读写 100次,这样就指定了生成文件的大小为100M。bs参数还可以进一步细分为ibs和obs两种,为读操作与写操作分别指定不同的Buffer大小。

这样就生成100M的空镜像文件,问题是,如果要生成1G的虚拟块设备文件,就得占用1G的硬盘空间,而这个镜像文件完全是空的,是不是有一点浪费?好在Linux支持Sparse(稀疏)文件。请看下面的例子

# dd if=/dev/zero of=1G.img bs=1M seek=1000 count=0

# ls -l 1G.img
-rw-r-r- 1 root  root  1048576000 Mar 25 15:32 1G.img
# du -m 1G.img

这里用了一个新的命令seek,表示略过1000个Block不写(这里Block按照bs的定义是1M),count=0表示写入0个Block。用ls命令看新生成的文件,大小可以看出是1000M。但是再用du一看,实际占用硬盘大小只有1M。


2018-09-28 18:04:17 xiangshangbashaonian 阅读数 2160

转载自https://www.cnblogs.com/17bdw/p/9094659.html

1、硬盘镜像获取工具:dd

dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

1.1 本地取数据

  • 查看磁盘及分区
# fdisk -l
  • 获取整个磁盘镜像文件
# dd if=需要拷贝的磁盘 of=/存储目录/镜像文件 (确保存储目录有足够的空间)

1.2 远程取硬盘数据·

克隆硬盘或分区的操作,不应在已经mount的的系统上进行,采取远程取的办法这样可以避免破坏现场。

  • NC远程传输文件

从受害机器A拷贝文件到取证机器B。需要先在取证机器B上,用nc激活监听。

取证机器B上运行: nc -l 1234 > text.txt

受害机器A上运行: nc 192.168.10.11 1234 < text.txt

注:取证机器B监听要先打开,192.168.10.11是取证机器B的IP

  • DD与NC结合传输硬盘数据

取证机器B上运行:

nc -l -p 4445 | dd of=/tmp/sda2.dd

受害机器A上执行传输,即可完成从受害机器A克隆sda硬盘到取证机器B的任务:

dd if=/dev/sda2 | nc 192.168.10.11 4445

可以用ls -lh命令,查看传输过来的数据大小。

2、AccessData FTK Imager挂载硬盘数据

Image Mounting挂载dd备份出来的硬盘数据。

3、参考

dd使用方法详解

http://www.jb51.net/LINUXjishu/157283.html

Linux硬盘操作

阅读数 60

没有更多推荐了,返回首页