歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux文化 >> 用rsync修復不完整的Linux光盤映像文件

用rsync修復不完整的Linux光盤映像文件

日期:2017/2/27 12:08:54   编辑:Linux文化

當我們下載Linux安裝盤的映像文件file.iso時,有時會出現光盤映像下載完成後,與官方提供的驗證碼不一致;還可能本來是3G大小的文件,下載下來卻是2G。如果我們一切從頭開始下載,代價實在是太大了。所以我們必須找一個工具來同步這個文件,使其與官方提供的驗證碼相對應;這時我們就引出了rsync工具。北南南北

1、光盤映像下載過程中的驗證碼問題存在的原因;

有時是因為下載工具不支持所致使,比如有些下載工具不支持大於2G的文件,所以會出現本來是3G的文件,結果他就下載了2G,文件的不完整導致驗證碼的不一致;另外一方面有時我們選擇的下載地址所提供的文件有問題,也會導致下載的file.iso與官方所提供的驗證碼不一致;

舉例:

比如,我們在Fedora 官方看到的Fedora Core 5.0 的SHA1驗證碼如下:

ed9a852cf77250c3ae111c621d350af5c0b0a29b FC-5-i386-DVD.iso

當我們在某個FTP下載後發現與官方的不一致,結果完全不能安裝使用;這時我們是重新下載,還是找一種辦法來解決?答案當然是找辦法來解決;所以我們這時引入了rsync 這個工具;

2、用rsync工具同步解決映像不完整問題;

大家都知道rsync 最主要的功能就是同步備份和鏡像功能,前提是得有rsync服務器;我所說的意思是rsync並不能同步ftp服務器上的內容,我想這個大家應該明白;

目前大多數Linux發行版都有rsync服務器,我們就可以利用rsync服務器上的源來同步不完整的光盤映像;

當然也能用rsync下載rsync服務器上的文件,我們用rsync的同步修復功能來解決我們所面對的問題,說實在的這個功能真的不錯;

2.1 尋找Linux發行版的rsync服務器;

因為rsync 並不能同步ftp和web服務器上的映像文件,所以我們根本沒有能力用光盤映像所處的FTP或WEB服務器上的地址;我們得找有類似下面的地址;

rsync://mirrors.kernel.org

只有在rsync服務器上找到我們所需要的映像才能行,尋找的辦法是去官方發行版所提供的服務器列表上去找;

2.2 rsync 進入服務器的方法;

比如我通過wget下載的FC-5-i386-DVD.iso有問題,我想用rsync 來同步解決;所以首先就要找擁有FC-5-i386-DVD.iso的rsync服務器;於是我到Fedora.redhat.com 的下載列表中尋找 ,發現 rsync://mirrors.kernel.org 上有這個文件;所以我們先要進入這台服務器;請不要把地址後面的/省略,這樣不會列出服務器或服務器目錄中的文件;

[root@localhost beinan]# rsync rsync://mirrors.kernel.org/

mirrors All mirror sites

debian Debian Linux distribution mirror

redhat RedHat mirror

fedora Fedora - RedHat community project

fedora.us fedora.us - Additional stuff for Fedora

centos CentOS - An Enterprise-class Linux distribution

opensuse OpenSUSE - Novell's community project

我們發現在這個服務器上有fedora的鏡像;所以我們一級一級的進去;執行下面的命令;

[root@localhost beinan]# rsync rsync://mirrors.kernel.org/fedora/

drwxr-xr-x 4096 2005/02/03 08:05:26 .

drwxr-xr-x 4096 2006/03/17 00:41:43 core

drwxr-sr-x 4096 2006/03/18 03:05:05 extras

... ...

[root@localhost beinan]# rsync rsync://mirrors.kernel.org/fedora/core/5/i386/iso/

drwxr-xr-x 4096 2006/03/15 13:39:03 .

-rw-r--r-- 3253669888 2006/03/15 12:49:55 FC-5-i386-DVD.iso

-rw-r--r-- 687235072 2006/03/15 12:47:10 FC-5-i386-disc1.iso

-rw-r--r-- 700618752 2006/03/15 12:48:05 FC-5-i386-disc2.iso

-rw-r--r-- 721016832 2006/03/15 12:50:35 FC-5-i386-disc3.iso

-rw-r--r-- 720910336 2006/03/15 12:51:46 FC-5-i386-disc4.iso

-rw-r--r-- 387753984 2006/03/15 12:52:16 FC-5-i386-disc5.iso

-rw-r--r-- 79122432 2006/03/15 12:31:59 FC-5-i386-rescuecd.iso

-rw-r--r-- 671 2006/03/15 13:38:25 SHA1SUM

我們發現了FC-5-i386-DVD.iso,這時我們要進行下一個過程,同步文件;

2.3 用rsync 同步文件的語法;

首先我們要進入本地機存放以前下載好,但有問題的 FC-5-i386-DVD.iso的目錄(還是接著前面的例子),然後再執行類似下面的命令;

命令格式如下:

rsync -vzP 映像文件的rsync地址 你以前下載下來的文件

比如我以前下載的 FC-5-i386-DVD.iso的有問題,這時我想用rsync 同步來修正,所以我把FC-5-i386-DVD.iso文件放入了一個名為fc5iso的目錄中;

[root@localhost beinan]# cd fc5

[root@localhost fc5]# ls -la

drwxr-xr-x 2 root root 136 2006-03-26 04:05 .

drwxr-xr-x 20 beinan beinan 472 2006-03-26 03:56 ..

-rwxr-xr-x 1 beinan beinan 2276458496 2006-03-26 03:47 FC-5-i386-DVD.iso

然後執行;

[root@localhost fc5]#rsync -vzP rsync://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso FC-5-i386-DVD.iso

可能要等幾分鐘才相關的信息出現,也會出現下載提示之類的;如果有下載之類的信息,就不必管他了,這說明已經正常工作了;我們有的只是等待;如果我們再看一下這個目錄都有什麼,我們就明白了。rsync的原理是先從本地已存的文件中下載,然後對照服務器的文件,如果已經下載的文件不完整,他就從服務器上下載;如果有錯誤的,就修正;他會先產生一個臨時文件,也就類似下面的... ...

[root@localhost fc5]# ls -la

ls -la

總用量 5253889

drwxr-xr-x 2 root root 136 2006-03-26 04:05 .

drwxr-xr-x 20 beinan users 472 2006-03-26 03:56 ..

-rwxr-xr-x 1 root root 2276458496 2006-03-26 03:47 FC-5-i386-DVD.iso

-rwx------ 1 root root 3103522816 2006-03-26 08:59 .FC-5-i386-DVD.iso.SI37yU

等完成後,會有類似下面這樣的提示,然後rsync會自動刪除.file臨時文件,更新 FC-5-i386-DVD.iso。

FC-5-i386-DVD.iso

3253669888 100% 164.78kB/s 5:21:22 (1, 100.0% of 1)

wrote 381831 bytes read 953051797 bytes 48730.35 bytes/sec

total size is 3253669888 speedup is 3.41

經過這個簡單的過程,我們就把有問題的文件同步更新了。然後我們再來檢測文件的完整性;這樣就可以修正存在問題的文件,是不是能行,只有嘗試了才知道;

注意:同步文件時,要有大一點的空間;因為同步的過程中,rsync會創建一個和你下載文件同等大小的臨時文件;

3、rsync 的版本簡說;

rsync有Windows版本,Linux大多發行版都有自帶,安裝上就OK了;不過我得說一下Windows版本;下載客戶端就行;

http://www.samba.org/rsync/download.html

4、關於本文;

一切為了應用,前幾天下載了FC5的DVD後,發現DVD不能用,所以想到了rsync可能同步修復它,於是就嘗試了,結果能行,所以寫此文。呵。。我寫的太多了,其實就是一句話就OK,我卻寫了好多。看來水平... ... :(

5、參考文檔;

http://www.samba.org/rsync/documentation.html


摘自:LinuxSir.Org


Copyright © Linux教程網 All Rights Reserved