Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Parchiveのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Parchive
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:データ圧縮とアーカイブ]] [[Category:システムリカバリ]] [[en:Parchive]] {{Related articles start}} {{Related|アプリケーション一覧/セキュリティ#ハッシュチェッカー}} {{Related articles end}} [https://github.com/Parchive/par2cmdline Parchive] (Parity archive) は PAR2 ファイルを使ってファイルを検証・修復するツールです。様々な種類のファイルで使うことができます。 ==インストール== {{Pkg|par2cmdline}} パッケージを[[インストール]]してください。インストールすると {{ic|par2}}, {{ic|par2create}}, {{ic|par2verify}}, {{ic|par2repair}} コマンドが使えるようになります。 ==使用方法== {{ic|par2create}} には入力ファイルを指定することができ、特定の数のデータブロックとして解釈されます。データブロックに基づいて {{ic|par2create}} は[[wikipedia:ja:リード・ソロモン符号|リード・ソロモン符号]]によるリカバリブロックを作成します。後から破損したデータブロックをリカバリブロックと交換することで元のデータを修復することができます。ファイルを完全に修復するには破損したデータブロックに応じた数のリカバリブロックが必要です。 例えば、大切なファイルの30パーセント分のリカバリ情報を計算したい場合: $ par2create -r30 ''file'' 上記のコマンドで Parchive は {{ic|<file>.par2}} インデックスファイルを作成しますが、インデックスファイルは修復するのに必ずしも必要というわけではありません。インデックスファイルに加えて、複数のファイルに分かれたリカバリブロックが作成されます。例えばリカバリブロックの数が592個であれば、以下のようにファイルが作られます: <file>.vol000+001.par2 <file>.vol001+002.par2 <file>.vol003+004.par2 <file>.vol007+008.par2 <file>.vol015+016.par2 <file>.vol031+032.par2 <file>.vol063+064.par2 <file>.vol127+128.par2 <file>.vol255+256.par2 <file>.vol511+081.par2 プラス記号の左の数字はファイルのリカバリブロックのインデックスで、プラス記号の右の数字がファイルに含まれているリカバリブロックの数です。 リンクレベルで整合性チェックが行われなかった初期バージョンでは破損したデータブロックの数に基づいてリカバリファイルを選択することで上記のファイルを使うことができました。ダウンロードしたファイルのデータブロックが43個破損している場合、数字を2進数に変換することで必要なリカバリファイルがすぐにわかります: 32 16 8 4 2 1 43 = 1 0 1 0 1 1 ファイルを修復するには {{ic|*+032.par2}}, {{ic|*+008.par2}}, {{ic|*+002.par2}}, {{ic|*+001.par2}} をダウンロードしてください。 必要なファイルだけをダウンロードすることで帯域幅を節約することができます。リカバリファイルをダウンロードしたら、以下のコマンドでダウンロードしたファイルの修復を行うことが可能です: $ par2repair <file>*.par2 インデックスファイルはなくても Parchive が勝手に処理してくれるため無視してかまいません。データブロックを完全にするために場合によっては {{ic|-N}} パラメータを指定すると良いこともあります。 ==ヒントとテクニック== ===ファイルのバッチ保護=== ファイルの整合性を保証したいが、クライアントにリカバリファイルを配布したくはないという場合もあるでしょう。ヘリウム封入ハードディスクドライブ・瓦記録技術・センチメートル級面密度・伝達損失などが跋扈する時代、ビットが腐る可能性は決して低くありません。出来るかぎり[[バックアッププログラム|データのバックアップ]]を行うべきですが、利用できるストレージの容量が膨大な昨今、ちょっとした保護を加えることは気楽です。{{ic|par2}} ファイルを作成することは、ファイルに対してアプリケーションプログラムを実行したりエラー出力を確認するよりも簡単にデータの整合性を確認してデータをリストすることができます。Bit rot は元のファイルとリカバリファイルのどちらでも発生する可能性があり、それでも元のファイルを修復することが可能です。 結果的には、ひとつのリカバリファイルに全てのリカバリパケットを含めて大丈夫です ({{ic|-n1}} パラメータ)。これによってリカバリデータの量も減ります。重要なのはどの程度冗長性をもたせるかということです。特に小さいファイル (1 MiB 以下) の場合、リカバリデータの量は元のファイルのサイズとあまり相関関係がありません: {| class="wikitable" ! 元のデータ !! 割合 (%) !! リカバリデータ (インデックスを含まない) |- | 184.8 KiB || 5 || 287.8 KiB |- | 184.8 KiB || 100 || 743.1 KiB |- | 3.4 MiB || 5 || 458.8 KiB |- | 3.4 MiB || 30 || 1.5 MiB |- | 3.4 MiB || 100 || 4 MiB |- | 1.7 GiB || 5 || 87.6 MiB |} 5% がリカバリデータとしては合理的なサイズですが、本当に重要なファイルであれば 100% のリカバリデータを確保しても良いでしょう。100% のリカバリデータは間違って元のファイルを削除してしまったとしてもファイルを復元することができます。 ファイルをバッチ保護するスクリプトは以下のようになります: {{Tip|1={{ic|bin/}} フォルダーが検索パスにあることを確認する必要があります: $ export PATH=$PATH:$HOME/bin/ この行をホームディレクトリの init ファイルに追加して、永続的にします。}} {{hc|~/bin/batchprotect.sh|2=#!/bin/bash OIFS="$IFS" IFS=$'\n' list=$(find . -type f {{!}} shuf) numleft=$(echo "$list" {{!}} wc -l) for file in $list ; do ending=$(echo "$file" {{!}} sed 's/\(.*\)\.\(.*\)$/\2/') #include this block if you want to have 5% recovery data if [ ! -e "$file-5p.par2" ] && [ "$ending" != "par2" ] && [ "$ending" != "sig" ] && [ "$(stat --format=%s "$file")" != 0 ]; then echo "$numleft original files left" par2create -q -n1 -r5 "$file" rm "$file".par2 mv "$file".vol*par2 "$file"-5p.par2 fi #include this block if you want to have 100% recovery data if [ ! -e "$file-100p.par2" ] && [ "$ending" != "par2" ] && [ "$ending" != "sig" ] && [ "$(stat --format=%s "$file")" != 0 ]; then echo "$numleft original files left" par2create -q -n1 -r100 "$file" rm "$file".par2 mv "$file".vol*par2 "$file"-100p.par2 fi #include this block if you want to check for normal AND cryptographic integrity if [ ! -e "$file.sig" ] && [ "$ending" != "par2" ] && [ "$ending" != "sig" ]; then gpg --default-key C0FFEEBEEFC0FFEEBEEFC0FFEEDEADBEEF31415926 --detach-sign --yes "$file" fi numleft=$((numleft-1)) done IFS="$OIFS" }} 次に、{{ic|batchprotect.sh}} を呼び出して、現在のディレクトリ内のすべてのファイルを Parchive によって再帰的に保護します。切り離された署名は、誰もあなたのデータを改ざんしていないことを確認するのに役立ちます。さらに、チェックサムのリストを維持する必要はありません。gpg もそれを行うことができるからです。 === 検証 === $ par2verify ''file''-5.par2 $ cfv ''file''-5.par2 $ gpg --verify ''file''.sig 元のファイルのパスを変更した場合: $ par2verify -B / ''file''-5.par2 ''/new/path/to/fileRenamed'' $ gpg --verify ''file''.sig ''/new/path/to/fileRenamed'' {{ic|par2}}/{{ic|sig}} ファイルのパスを変更することもできます。
このページで使用されているテンプレート:
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
Parchive
に戻る。
検索
検索
Parchiveのソースを表示
話題を追加