久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

dd命令_Linux dd命令:復(fù)制(拷貝)文件,,并對原文件進(jìn)行轉(zhuǎn)換

 懶人看書館 2020-12-18
dd,,是 device driver 的縮寫,,它可以稱得上是“Linux 世界中的搬運(yùn)工”,,它用來讀取設(shè)備、文件中的內(nèi)容,,并原封不動地復(fù)制到指定位置,。

當(dāng)我們用 dd 命令讀取 /dev/null 文件時,就可以創(chuàng)造出空洞文件,,而如果你的磁盤足夠大,,你甚至可以創(chuàng)造出一個宇宙黑洞呢!

備份磁盤并恢復(fù)

好記性不如爛筆頭,,好硬盤不如常備份,。硬盤的損壞雖然是個小概率事件,但是一旦發(fā)生卻會帶來災(zāi)難性的后果,。對重要數(shù)據(jù)進(jìn)行備份,,不僅是一個好習(xí)慣,,更體現(xiàn)了對別人對自己負(fù)責(zé)的態(tài)度。

寫到這里,,突然意識到我的硬盤里面存有很多珍貴的資料,,一想到可能會因?yàn)榇疟P故障而永遠(yuǎn)失去它們,心里就不禁一顫,,趕緊把數(shù)據(jù)備份提上日程吧,!

之前看過一些介紹 dd 的文章,例子中基本都是使用 hda,、hdb 這種 IDE 接口的硬盤,,其實(shí)現(xiàn)在的主流硬盤已經(jīng)是 SATA 接口的了,下面我要備份的硬盤是 dev/sda,,它就是塊 SATA 盤,。
[root@roclinux ~]# dd if=/dev/sda of=/root/sda.img

這個命令將 sda 盤備份到指定文件 /root/sda.img 中去,其中用到了如下兩個選項:
  • if=文件名:指定輸入文件名或者設(shè)備名,,如果省略“if=文件名”,,則表示從標(biāo)準(zhǔn)輸入讀取。

  • of=文件名:指定輸出文件名或者設(shè)備名,,如果省略“of=文件名”,,則表示寫到標(biāo)準(zhǔn)輸出。


通過上面的 dd 命令,,我們得到了 sda.img 文件,,它就是已經(jīng)備份好了的磁盤映像文件,里面存儲著 /dev/sda 整塊硬盤的內(nèi)容,。

在未來的某天,,假如 /dev/sda 硬盤真的出現(xiàn)了故障,我們就可以將曾經(jīng)備份的 sda.img 復(fù)制到另一臺電腦上,,并將其恢復(fù)到指定的 sdb 盤中去,。
[root@roclinux ~]# dd if=/root/sda.img of=/dev/sdb

如果能把目標(biāo)硬盤直接連接到我們現(xiàn)在的電腦上,并讓系統(tǒng)識別到這塊新硬盤,,例如識別成 /dev/sdc,,那么我們可以直接使用 dd 命令將 sda 盤復(fù)制到 sdc 中去。這種用法既可以用來整盤備份,,也可以用來快速復(fù)制系統(tǒng)環(huán)境,。下面來看看具體的命令:
[root@roclinux ~]# dd if=/dev/sda of=/dev/sdc

對 dd 來說,所有設(shè)備和文件都一視同仁,,所謂的“備份”和“恢復(fù)”,,dd 都認(rèn)為是一種內(nèi)容的復(fù)制。dd 操作就是簡單的按字節(jié)復(fù)制。簡單,、直觀,,就是我對 dd 的最直接的感受。

備份時進(jìn)行壓縮

數(shù)據(jù)沒有壓縮就進(jìn)行整盤備份,,勢必需要很大的備份空間,,從而導(dǎo)致備份成本升高。這對于備份場景來說,,是低效能的表現(xiàn),。

假如遇到磁盤空間不足,連備份操作都沒辦法圓滿完成:
#看, 報出了磁盤空間不足的警告
[root@roclinux ~]# dd if=/dev/sda of=/root/sda.img
dd: writing to '/root/sda.img': No space left on device

其實(shí)我們在使用 dd 做備份時,,可以使用 gzip 或者 bzip2 壓縮算法進(jìn)行數(shù)據(jù)壓縮處理,,這樣可以大大減少我們的磁盤空間用量,,也就降低了備份成本,。

下面就使用 gzip 壓縮算法配合 dd 命令來備份 /dev/sda 盤:
#沒有指定of則表示輸出到標(biāo)準(zhǔn)輸出
[root@roclinux ~]# dd if=/dev/sda | gzip > /root/sda.img.gz

然后再將其恢復(fù)到 /dev/sdb 盤中去,方法如下:
#沒有指定if就表示從標(biāo)準(zhǔn)輸入讀取

下面我們更換 bzip2 壓縮算法配合 dd 命令再來實(shí)現(xiàn)一遍上面示例的效果:
[root@roclinux ~]# dd if=/dev/sda | bzip2 > disk.img.bz2
[root@roclinux ~]# bzip2 -dc /root/sda.img.gz | dd of=/dev/sdc

分區(qū),、內(nèi)存,、軟盤一個都不能少

在上面的內(nèi)容中,介紹的都是備份整盤的知識,,那如果只是想備份某一個分區(qū)的數(shù)據(jù),,應(yīng)該如何操作呢?

賣了一個關(guān)子,,其實(shí)在 dd 命令看來,,備份整盤和備份分區(qū),在命令形式上并沒有區(qū)別,,我們來看示例:
[root@roclinux ~]# dd if=/dev/sda2 of=/root/sda_part1.img

同理,,將內(nèi)存中的數(shù)據(jù)整體備份,照樣可以如法炮制:
[root@roclinux ~]# dd if=/dev/mem of=/root/mem.img

隨著科技的飛速發(fā)展,,無論是臺式機(jī)還是筆記本,,都已經(jīng)取消了軟驅(qū)和光驅(qū)設(shè)備,軟盤和光盤也已經(jīng)接近滅絕的邊緣,,很多九零后們應(yīng)該都不知道軟驅(qū)為何物了吧,。

所以接下來要介紹的軟盤、光盤備份法,,權(quán)當(dāng)是追憶過去吧,,謹(jǐn)以此內(nèi)容來懷念我們逝去的青春。
#備份軟盤
[root@roclinux ~]# dd if=/dev/fd0 of=/root/fd0.img count=1 bs=1440k
 
#備份光盤
[root@roclinux ~]# dd if=/dev/cdrom of=/root/cd.img

對于 dd 命令來說,,除了 if,、of 兩個選項之外,還應(yīng)該掌握下面這兩個重要選項:
  • bs=N:設(shè)置單次讀入或單次輸出的數(shù)據(jù)塊(block)的大小為 N 個字節(jié),。當(dāng)然也可以使用 ibs 和 obs 選項來分別設(shè)置,。

  • ibs=N:單次讀入的數(shù)據(jù)塊(block)的大小為 N 個字節(jié),,默認(rèn)為 512 字節(jié)。

  • obs=N:單次輸出的數(shù)據(jù)塊(block)的大小為 N 個字節(jié),,默認(rèn)為 512 字節(jié),。

  • count=N:表示總共要復(fù)制 N 個數(shù)據(jù)塊(block)。


所以這里備份的軟盤大小是 1440kB,,可以看出這是一塊 3 寸盤,,其大小為 1.44MB。為了追憶青春,,我們再來一起看看軟盤的樣子,。

備份磁盤的 MBR

MBR,是 Master Boot Record,,即硬盤的主引導(dǎo)記錄,,MBR 一旦損壞,分區(qū)表也就被破壞,,數(shù)據(jù)大量丟失,,系統(tǒng)就再也無法正常引導(dǎo)了,真是不堪設(shè)想??!所以,對 MBR 的定期備份是十分必要的,,在緊急關(guān)頭,,把它比喻成一顆救死扶傷的速效救心丸,也絕不為過,。

一塊磁盤的第一個扇區(qū)的 512 個字節(jié)所存儲的正是這塊磁盤的 MBR 信息,,我們嘗試用 dd 命令備份 MBR:
[root@roclinux ~]# dd if=/dev/sda of=/root/sda_mbr.img count=1 bs=512

如果未來遇到分區(qū)表損壞的情況,我們用曾經(jīng)備份的 MBR 信息寫回磁盤,,就能起到立竿見影的效果,。下面來一起看看如何將 MBR 寫回硬盤:
[root@roclinux ~]# dd if=/root/sda_mbr.img of=/dev/sda

方法是不是比你想象得要簡單,即使是面對 MBR 如此重要的敏感數(shù)據(jù),,dd 命令也是閑庭信步,,信手拈來。

使用 /dev/zero 和 /dev/null 來測試磁盤

本段落開始前,,我們要為大家介紹兩位新朋友:
  • /dev/null,,也叫空設(shè)備,小名“無底洞”,。任何寫入它的數(shù)據(jù)都會被無情拋棄,。

  • /dev/zero,可以產(chǎn)生連續(xù)不斷的 null 的流(二進(jìn)制的零流),用于向設(shè)備或文件寫入 null 數(shù)據(jù),,一般用它來對設(shè)備或文件進(jìn)行初始化,。


我們可以觀察下面兩個命令的執(zhí)行時間,來計算出硬盤的讀,、寫性能:
#向磁盤上寫一個大文件, 來看寫性能
[root@roclinux ~]# dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
 
#從磁盤上讀取一個大文件, 來看讀性能
[root@roclinux ~]# dd if=/root/1Gb.file bs=64k | dd of=/dev/null

上面命令生成了一個 1GB 的文件 1Gb.file,,下面我們配合 time 命令,可以看出不同的塊大小數(shù)據(jù)的寫入時間,,從而可以測算出到底塊大小為多少時可以實(shí)現(xiàn)最佳的寫入性能,。
[root@roclinux ~]# time dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
[root@roclinux ~]# time dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
[root@roclinux ~]# time dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
[root@roclinux ~]# time dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

利用 /dev/urandom 進(jìn)行格式化

除了 /dev/null 和 /dev/zero 之外,還有一個很重要的文件,,即 /dev/urandom,,它是“隨機(jī)數(shù)設(shè)備”,它的本領(lǐng)就是可以生成理論意義上的隨機(jī)數(shù),。

如果我們想清除硬盤里的某些機(jī)密數(shù)據(jù),,就可以使用 /dev/urandom 這個隨機(jī)數(shù)生成器來產(chǎn)生隨機(jī)數(shù)據(jù),寫到磁盤上,,以確保將磁盤原始數(shù)據(jù)完全覆蓋掉,。
[root@roclinux ~]# dd if=/dev/urandom of=/dev/sda

好了,有關(guān) dd 的故事就介紹到這里了,。雖然我們不能創(chuàng)造出真正的宇宙黑洞,但學(xué)習(xí)了這么多的實(shí)用技能,,也算不虛此行啦,!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多