修復檔使用需知:修訂間的差異
(新頁面: =簡介= 修復檔製作軟體主要分為ICE ECC以即Par2兩種,其中ICE ECC只能用於windows而Par2較常使用於Linux平台上使用,一來[http://thanatos.polyzone.org/201...) |
(無差異)
|
於 2014年6月22日 (日) 18:47 的修訂
目錄
簡介
修復檔製作軟體主要分為ICE ECC以即Par2兩種,其中ICE ECC只能用於windows而Par2較常使用於Linux平台上使用,一來thanatos' blog有詳細的說明且一般我使用Par2居多,因此外掛結構為基百科不多做介紹如何使用ICE ECC來修復檔案,但是依舊會針對手邊ECC檔案使用方式做介紹。 修復檔的製作方針主要是針對項目分卷有遺失的狀況做假定來製作,一般檔案損壞不嚴重的情況下可直接透過rar的修復紀錄來修補損壞的分卷,因此一般情況若項目分卷不多的情況會大多只會製做rar修復紀錄,檔案是否製做修復紀錄可參考項目中的檔名來做初步判定。
Par2修復檔的製作方式
主要分兩種,一種是針對全部分卷製做修復檔,另一種是針對部分分卷來製作修復檔,因為當項目分卷過多的情況下一次針對全部項目製作修輔檔所需的時間過長所以才有兩種製作方式,約略劃分做100分卷為一單位,大於100分卷的項目會約略以100分卷為一個單位製作一組修復檔,以下提供相應的範例做參考。
範例:針對項目全部分卷製作
- 項目分卷為98卷,修復檔共製作11個分卷,參考修復檔檔名vol之後的字串例如vol06+8可推得每個修復分卷各有8個修復區塊,也就是說在檔案損毀的情況下就算是損毀的區塊過於巨大過於分散也可以透過修復檔修補共80個損壞區塊,若一個分卷會消耗8個修復區塊則可以修復10個遺失的分卷。
範例:針對項目部份分卷製作
- 項目分卷為213卷,針對項目分卷製作的修復檔共三部分,前兩部份各為15個修復檔,參考修復檔檔名rr3與vol之間的字串例如001-099或是100-199或是200-End可推得若需修復項目的哪一個的分卷必須取得哪一部分的修復檔。參考修復檔檔名vol之後的部分例如vol06+6可推得前兩部分每個修復檔都各有6個修復區塊,而最後一份為兩個修復檔共12個修復區塊。
項目修復檔最後一部分的修復檔檔名可能會碰到vol之後的字串雖為*-*99的情況但是該項目實際分卷未滿*99的狀況下(例如最多*97)則自動將修復檔最後一部分vol之後的字串訊息的*-*99修正為意指*-*97個分卷,出現這種狀況主要是因為par2計算上無法正確預估造成
Par2檔案的確認方式
在使用par2修復檔前建議先了解並評估par2修復檔是否足以修復手邊的項目分卷,一但推估修復區塊不足以修復整個項目的情況下則需使用修復檔案,以下提供簡單範例供參考。
範例一
Question: 項目分卷65卷,每卷各100MB大小,修復檔共3卷皆為165MB且各有兩個修復區塊,請問若有4個分卷遺失,修復檔是否有機會修復全部項目? Anser:
- 修復檔每卷有165MB且為2個修復區塊,故每個修復區塊約為165/2=85.5MB
- 項目分卷每卷100MB,故需要100/85.5無條件進入=2個修復區塊才能修復一個項目分卷
- 項目分卷共遺失4個分卷故需要4*2=8個修復區塊才能修復遺失的分卷
- 修復檔共三卷且每卷為兩個修復區塊因此總共3*2=6個修復區塊,因此不足以修復項目分卷
有不少人的謬誤為直接將修復分卷大小減去遺失分卷大小來評估修復分卷是否足以修復檔案是錯誤的推估方式,如本範例修復區塊共495MB雖大於遺失分卷大小400MB但仍不足以修復整個項目
範例二
Question: 項目分卷145卷,每卷各100MB大小,修復檔共兩部份,第一部份指向項目分卷001-099分卷共有15個修復分卷,每個修復分卷大小皆為110MB且每卷有6個修復區塊,第二部份指向項目分卷100-145分卷共有7個修復分卷,每個修復分卷大小皆為115MB且每卷有6個修復區塊,若項目分卷001-015遺失且100-106遺失,請問修復檔是否有機會修復全部項目? Anser:
- 第一部份的修復分卷每個修復區塊為110/6=18.333MB
- 項目分卷大小為100MB,001-099分卷每遺失一個項目分卷需要100/18.333無條件進入=6個分卷來修復
- 第一部分的修復區塊共用15*6=90個修復區塊
- 第一部分共遺失001-015分卷共15個分卷因此需要15*6=90個修復區塊來修復
- 項目分卷001-015遺失剛好需要第一部分全部的修復區塊修補
- 第二部份的修復分卷每個修復區塊為115/6=19.166MB
- 項目分卷大小為100MB,100-106分卷每遺失一個項目分卷需要100/19.166無條件進入=6個分卷來修復
- 第二部分的修復區塊共用7*6=42個修復區塊
- 第二部分共遺失100-106分卷共7個分卷因此需要7*6=42個修復區塊來修復
- 項目分卷100-106遺失剛好需要第二部分全部的修復區塊修補
- 綜合兩部分的修復區塊剛好可以修復全部遺失的項目分卷
僅管遺失分卷都可以修復但是不幸若碰到其他非遺失的項目分卷有損壞的區塊以致所需的修復區塊大於限有的修復區塊的情況則par2修復檔則無法正常做修復的動作
修復紀錄與修復檔的使用方式
解壓所有項目前依照正規的流程做處理,一但出現檔案損毀就要了解修復檔案的方式。
rar修復紀錄的使用方式
檔案是否含有修復紀錄按照檔名來做判斷,當然會有謬誤的情況發生但是不常見,多數是因為製作分卷時script用錯造成的,一但複判(也就是正式採取修複動作)出問題就可知道檔案修復紀錄是否真正存在,並且若修復不成功也可判斷rar修復紀錄是否有能力修復損檔案中損毀的區塊。修復的方式一般有兩種,一種是直接在桌面環境開啟rar軟體後直接調用附加的工具來修復,但此種方式在項目中若有多重壞檔的狀況下因為必須全手動修復各個壞檔,因此很浪費時間,我推薦直接調用批次檔來批量修復軟體。以下方式執行前先確定已經安裝適當版本的winrar(for windows)/rar(for linux),版本過舊的情況將會造成解壓失敗或是影響到檔案修復。
方式一:全手動修復(不推薦)
- 方式一僅適用於windows作業系統使用
- 利用sfv檔案掃描全項目將損壞(crc error)的分卷分堆
- 若無檢校檔(副檔名為.sfv/.crc)但具有par2修複檔的情況下
- 時間緊急:直接利用rar解壓縮,大多數情況下rar解壓過程中若碰到分卷損毀會有警告訊息,收集警告訊息後可知有哪些分卷有問題,若採取7z壓縮的項目建議採取下面第二種方式。
- 時間充裕:直接透過par2掃描,就算是修復區塊不夠用依然可以得知有哪些檔案是損毀的,若修復區塊夠用的情況下就直接修復到底忽略rar修復紀錄也行。par2詳細使用方式參考其他段落的說明
- 若無檢校檔(副檔名為.sfv/.crc)但具有ecc修複檔案的情況下:j已經忘記是否也同par2一樣有掃描壞檔並紀錄的功能,有需要的人可以試試看。
- 無檢校檔且無修復檔的情況:同2-2的說明收集損毀的分卷
- 新建一個暫存的資料夾存放損毀的分卷後按照下圖的方式逐一修復檔案
- 修復完成的檔案在檔名前方會有fixed.字樣,用更名軟體(Ken Rename等)修掉
- 回複到步驟二的流程將檔案完整檢查後即可解壓項目分卷
方式二:全自動修復(推薦)
- 前置作業與上述方式一(2-5歩)相同,以下先針對windows平台做說明
- 將下面command中密碼字串做適當的替換後將所有內容新增至bat批次檔放置在與損毀分卷同級的資料夾中
for %%x in (*) do "c:\Program Files\WinRAR\Rar.exe" r -p密碼 "%%x"
pause - 執行批次檔即可批量修復資料夾中所有的檔案,因為連批次檔本身都會修復一次所以回報的部分中第一個檔案若修復錯誤可以忽略,整個修復過程會回報如下圖。
- 修復完成的檔案在檔名前方會有fixed.字樣,用更名軟體(Ken Rename等)修掉
- 回複到步驟二的流程將檔案完整檢查後即可解壓項目分卷
- linux平台下原理和批次檔完全相同,直接透過CLI下達以下指令即可
find . -maxdepth 1 -type f | xargs -I@ rar r -phttp://bdmv.info/snow @ repire/
若想取得損壞的分卷做測試修復紀錄,可參考壞檔的製作方式來保證上述的工作方式都是正確的
Par2修復檔的使用方式
一組完整的par2修復檔分成兩個部分,一個是index,一個是核心的修復區塊,尤其是index的部分最為重要,若有缺損的情況下就算有修復區塊也無法正常工作
windows平台下
- par2在windows系統下工作並不能保證工作完全正常