破損したUbuntu ISOで破損したファイルを特定して置き換える方法


14

したがって、これはUbuntuを実行しているという問題ではなく、インストールすることに関する問題です。

Ubuntu ISOを(任意のソースから)ダウンロードしようとするたびに、破損しているように見えます。つまり、MD5の合計は決して正しくありません。

Ubuntu ISOファイルには、ISO内のすべてのファイルとそれぞれのMD5SUMをリストしたファイルが付属しています。

私がやりたいのは、このファイルをループし、それらをISO内のファイルと比較し、他のisoファイルの1つから破損したファイルを抽出できることを期待して、破損しているファイルを調べることです作業インストーラー。

しかし、これを行う方法がわかりません。もちろん、さらに悪いことに、Windows 7からこれを行う必要があります。

誰もこれを修正する方法を知っていますか?


Jigdo(Debianが好む方法)はこれを行うべきではありませんか?現在の主な目的は、ISO内のパッケージを更新することにより、ISO上のポイントリリースのデルタ更新を行うことです。Debian ISOとJigdoについて
gertvdijk

@gertvdijk UbuntuのデスクトップISO用ではありません。ほとんどの場合、単一のファイルのみが含まれているためです(私の回答を参照)。そのため、デスクトップISO .jigdoにはダウンロードサーバーに関連ファイルがありません。代替CDおよびサーバーCD ISO .jigdoファイルあります。デスクトップISOにはUbiquityインストーラーがあります。これは、ライブCDシステムをディスクに書き込んでから変更を加えて、通常の(インストール済みの)使用に備えて動作します。
エリアケイガン

@EliahKaganそれは理にかなっています。わかりました、その場合、PARがあるべきではないです完全なISOを修正するためのパリティブロックファイルか?それははるかに効率的で、はるかに簡単で、より普遍的です。「ParchiveはもともとUsenetでファイルを確実に転送する問題を解決するために書かれましたが[1]、現在ではあらゆる種類のデータをデータ破損、ビット腐敗、偶発的または悪意のある損傷から保護するために一般的に使用されています」
gertvdijk

1
なぜPARの方が優れているのzsyncでしょうか?PARがUbuntuプロジェクトによって公式にサポートされていたとしても(そうであるようzsyncに)、顕著な利点はありますか?jigdoについて:代替CDおよびサーバーCDに適用できます。を使用してdebian-installer、必要最低限​​のシステムを作成し、パッケージをchrootしてインストールします。そのため、すべての.debファイルがパッケージプールにあります(デスクトッププールにはごくわずかなファイルが含まれています)。.jigdo(または他の方法)で簡単に組み立てることができます。jigdo破損したファイルだけをダウンロードする方法について、サーバー/代替のベースの回答を投稿することができます。
エリアケイガン

1
@EliahKagan-PARは、「修復するには3つのパリティブロックが必要」、「大丈夫、問題を修正...完了!」など、オフラインで処理できます。Zsyncは、その完全なコピー(この場合はリモート)を効果的に必要とします。しかし、ええ、原則は同じです。ところで、Zsyncはgzipedアーカイブを非常にうまく処理できると思いますが、SquashFSではそのインテリジェンスは役に立たないと思いますか?とにかく、Ubuntu ISOの場合は、zsyncがまさにその方法です。
gertvdijk

回答:


34

実際、どのファイルが破損しているかがわかります

破損した複数のISOイメージのファイルを単一の良好なISOイメージに結合しようとすることは、この問題に対する適切なアプローチではありません。その理由は次のとおりです。

ISOイメージのほとんどすべてのデータは、1つのファイルにのみ属しますcasper/filesystem.squashfs

UbuntuデスクトップCDまたはDVD ISOイメージ上、つまり。サーバーCDイメージまたは代替CDイメージでは、それは別の話です。

Ubuntu 12.10 i386デスクトップCD上のfilesystem.squashfsのNautilusプロパティ

だから私は今、あなたがダウンロードした各ISOでほぼ確実にどのファイルが壊れているかを伝えることができます:そのファイル、それらすべてです。Ubuntu ISOで何かが破損している場合、不良バイトはほとんど常にそこにあります。

filesystem.squashfs自体はディスクイメージ。ライブCDでシステムをブートする一部としてマウントされます。ISOから潜在的にそれを抽出し、その内容を抽出し、破損したものを確認し、破損したファイルを置き換えることができます。SquashfsファイルシステムをWindowsにマウントまたは抽出することはできますが、そうするのは簡単な作業ではないでしょう。また、このイメージは圧縮されているため、含まれているISOの小さな破損が複数のファイルに影響を与えないという保証はありません。

さらに、ISOイメージを数回ダウンロードしようとした場合常に破損している場合は、それが単なる小さな破損ではないことを確信できます。この方法で実行しようとした場合、数百または数千のファイルを置き換える必要があります。

代わりに、より信頼性の高い方法を使用してISOイメージをダウンロードする必要があります。

便利なことに、それらの1つ(zsync)は、そこに含まれている必要なファイルだけでなく、ISOファイルの必要な部分だけをダウンロードすることを除いて、あなたが考えているものと似ています。

正しいMD5ハッシュと比較していることを確認する

MD5の合計が間違っているときに最初に行うこと- 特に間違っている場合、ファイルを再度ダウンロードした後に間違っている場合にに行うことは、正しいファイルのMD5ハッシュと比較していることを確認することです。

私の推測は

  • 12.04 LTSイメージがあり、12.04.1 LTSイメージにMD5ハッシュを使用しています
    同じファイルではありません))に、または
  • 12.04.1 LTSイメージがあり、12.04 LTSイメージにMD5ハッシュを使用している場合、 または
  • 32ビット(「i386」)イメージがあり、64ビットイメージにMD5ハッシュを使用している場合、 または
  • 64ビット(「amd64」)イメージがあり、32ビットイメージにMD5ハッシュを使用しています。

各ファイルのMD5ハッシュのリストはこちらです。

一般に、MD5ハッシュが間違っているが、複数のダウンロードで同じ場合、通常は

  • あなたは間違ったハッシュと比較しています または
  • サーバー上でファイルが破損している場合(その場合は、別のミラーからダウンロードし、必要に応じて、ubuntu-website-contentに対するバグを報告して問題を修正します)、または
  • WebコンテンツをキャッシュするプロキシまたはVPNを使用しており、何らかの方法で破損したコピーをキャッシュしています(別のミラーからダウンロードすることでも修正されます)。 または
  • FTP経由でダウンロードしており、サーバーまたはFTPクライアントに問題があるため、ファイルがバイナリモードではなくテキストモードで転送されます(これにより破損し、通常は毎回同じように破損します)。 または
  • 故意に間違ったファイルを送っている悪意のある第三者によって、意図的に接続がインターセプトされ、変更されています(ただし、これは通常、非常にまれです)。

このページの下部で(異なる)ダウンロードミラー手動で選択できます。

ISOイメージが実際に破損している場合、良いファイルを取得するいくつかの方法があります。

zsync

zsync(こちらも参照)は、適切なバージョンを持っていない部分だけをダウンロードすることにより、部分的に正しいファイルを完全に正しいファイルに変換できるユーティリティです。その主なアプリケーションは、あるナイトリービルドから別のナイトリービルドまで、わずかに更新されたイメージをダウンロードすることです。

方法zsyncは次のとおりです。ファイルを提供する誰か(Ubuntuプロジェクトなど)は、.zsync多くのチェックサムを含むファイルを作成します。チェックサムは、ファイル全体の1つのチェックサムではなく、ファイルの多くの小さな部分に対応します。何もないところからファイル全体までどこからでも始められます。

何もしないと、ファイル全体がダウンロードされます。ファイルの一部(つまり、サイズが異なるか、バイナリサイズが異なる同じサイズのファイル)を使用すると、ダウンロードする必要がある部分がわかり、それらの部分だけがダウンロードされます。ファイル全体では、何もダウンロードしません。

以下のために非常に信頼性の低いインターネット接続zsyncより良い最初からファイル全体をダウンロードするためのウェブブラウザ以外ではありません、2回以上、それを実行できている喜んでいない限り、その場合には、後に実行されますが、以前の実行中に問題を修正します。最高のエラーレートを除くすべてのインターネット接続では、ファイルに対して2回または場合によっては3回zsyncを実行すれば十分です。

ただし、zsync複数回実行することについてほとんど心配する必要はありません。あなたはすでに(おそらく)ファイルの大部分を持っているので、それは問題になりません。そして、いつものようにzsync、破損したものがあれば、いつでもzsync再実行して修正できます。

zsyncWindows用の取得

zsync伝統的にUnixライクなシステムで実行されます(実際にはWindowsは含まれていません)。ただし、最近Windowsのネイティブポートzsyncが作成されたため、おそらくそれを使用できます。

zsyncはコマンドラインプログラムであるため、Windowsではコマンドプロンプトで実行します。(コマンドプロンプトを開く1つの方法cmd.exeは、[スタート]メニューのテキストボックスに入力してを押すことEnterです。または、Windows XP以前では、[スタート]> [ファイル名を指定して実行]の順にクリックしますcmd.exe。)

別の方法:zsyncCygwinを取得する

Windowsのポートに問題があるzsync場合は、常にCygwinバージョンを使用できます。Cygwinは、Windows用のUnixライクな環境を提供します。コンパイルされた実行可能ファイルを実行することはできませんが(たとえば、zsyncUbuntuパッケージからは使用できません)、ソースからコンパイルされたプログラムの特別なバージョンを使用します。(CygwinでUnixライクなオペレーティングシステム用に記述されたプログラムをコンパイルする方が、Windowsでネイティブに動作するようにコンパイルするよりもはるかに簡単です。)

  1. まず、Cygwinのインストーラー(setup.exe)をここから入手します(またはこの直接リンクを使用します)。
  2. 実行して、最初の画面で[ 次へ ]をクリックし、[ インターネットからインストール ]を選択して、もう一度[ 次へ ]をクリックします。
  3. 次の2つの画面で、Cygwinとローカルパッケージディレクトリを好きな場所に配置します(通常はデフォルトで十分です)。
  4. インターネット接続タイプを選択します(通常、直接接続が適切です)。setup.exeミラーのリストをダウンロードします。
  5. ミラーを選択すると、利用可能なパッケージのリストがダウンロードされます。このバージョンが以前のバージョンとどのように異なるかについておそらく警告されるでしょう。同じマシンで以前のバージョンのCygwinを使用していない限り、これは問題ではありません。

    特定のバージョンのCygwinを初めてインストールしたときのセットアップアラートメッセージ。 以前にCygwinを使用したことがない場合、これは無視できます。 「このシステムにCygwinを初めてインストールした場合は、このメッセージを無視できます。」

  6. これで、インストールするパッケージを選択できます。パッケージを名前で検索するためのテキストボックスがあります。zsyncそこに入力します(ただし、-を押すのではなくEnter、[ 次へ ]をクリックするようなものです)。Netのエントリが表示されます。+左側のをクリックして展開すると、その下に[ スキップ]が表示されます。つまり、何も変更しないとインストールsetup.exeされませんzsync

    Velma Dinkleyは、「Siren's Song」でブログを更新するときにCygwinにzsyncをインストールします。

  7. 一度クリックすると、スキップと表示されます。これでzsync、Cygwinの利用可能な最新の安定バージョンがインストールされます。

    ここに画像の説明を入力してください

  8. [ 次へ]をもう一度クリックして、インストールを完了します。Cygwin環境、およびzsyncがダウンロードおよびインストールされます。(依存関係として必要なパッケージをインストールするように求められたら、先に進んでください。)

インストールしたら、Cygwinシェルを開きます。zsyncそこから実行できます。

参照資料

Cygwinの 問題についてCygwinメーリングリストに投稿することはできますが(Cygwinと、読むように指示されている資料を読んだ後)、非公式の指示サポートしていませんcygwin優れたドキュメンテーションがあるため、優れた一元化されたドキュメンテーション(OpenBSDなど)を備えた他のプロジェクトと同様に、彼らは助けを求める人々がドキュメンテーションを読んで作業する(または少なくとも非常に精通している)ことを期待しています。

(したがって、私の指示に問題がある場合、おそらくそれらについて尋ねるのに最適な場所はここにあります。)

zsync Ubuntuで

これは特定のケースには当てはまりませんが、zsyncUbuntuで使用する場合はzsyncをzsyncをインストールするインストールするだけです。これは、ソフトウェアセンターで実行するか、ターミナルウィンドウで実行して実行できます(Ctrl+ Alt+ T)。

sudo apt-get update && sudo apt-get install zsync

これで、ターミナルから実行できます。

関連:ISOをzsyncで更新するにはどうすればよいですか?

zsync破損したISOイメージの修正に使用

コマンドプロンプトで、破損したISOファイルを含むディレクトリに移動します。(cdUbuntuと同じようにディレクトリを変更するために使用できます。dirディレクトリの内容をリストするために使用します。)持っているファイルのファイル名が取得時と同じであることを確認してください。

zsyncUbuntu ISOイメージに応じて、次のいずれかの方法で実行します。

  • 12.10、32ビット:

    zsync http://releases.ubuntu.com/quantal/ubuntu-12.10-desktop-i386.iso.zsync
    
  • 12.10、64ビット:

    zsync http://releases.ubuntu.com/quantal/ubuntu-12.10-desktop-amd64.iso.zsync
    
  • 12.04.1 LTS、32ビット:

    zsync http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-i386.iso.zsync
    
  • 12.04.1 LTS、64ビット:

    zsync http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-amd64.iso.zsync
    
  • 12.04 LTS(12.04.1ポイントリリース前)、32ビット:

    zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-i386.iso.zsync
    
  • 12.04 LTS(12.04.1ポイントリリース前)、64ビット:

    zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-amd64.iso.zsync
    

これらのコマンドのいずれかを実行zsyncすると、ISOが正しいバージョンに自動的にパッチされ、すぐに使用できます。

zsync他のファイルに使用する

一般的な構文では、バージョンがあり、ダウンロードしたいファイルと同じ名前を持つサーバー上zsync.zsyncファイルの完全なURLを続けて実行します(.zsyncコースの最後を除く)。

他のUbuntuリリース(または、Macで適切に起動するように最適化されたバージョンやARMベースのモバイルデバイス用のバージョンなど、同じリリースの他のISOファイル)でこれを実行したい場合は、.zsyncファイルの場所に関するルールがあります:

  • LTSリリースの最新ポイントリリースのISOおよび現在サポートされているLTSリリースのすべてのISOを含む、現在サポートされているインストーラーを含むISOイメージは、次の場所にあります。

    http://releases.ubuntu.com/

  • サポート終了のリリース(とにかく使用しないでください)またはサポートされているLTSリリースの以前のポイントリリースのISOイメージは、次の場所にあります。

    http://old-releases.ubuntu.com/releases/

ご使用のバージョンのリンクをクリックし、下にスクロールして完全なファイルリストを表示するか、ページを検索してください.zsync。次に、URLをコピーしてzsyncコマンドに貼り付けます。

「アップグレード」で使用

また、zsyncあるISOを別のISOに「アップグレード」することもできます。あるUbuntuリリースから別のリリースにアップグレードする場合、おそらくファイルのほとんどを再ダウンロードする必要があります。ただし、ポイントリリース(12.04 LTSから12.04.1 LTSなど)をアップグレードする場合は、それほどダウンロードする必要はありません。これは、新しいポイントリリースを迅速かつ効率的に取得するための優れた方法です。

新しいファイルと同じ名前になるように古いファイルの名前を変更し、zsync上記のように実行します。

BitTorrent

インターネット接続のエラー率が高い場合、BitTorrentは多くの場合、ファイルを確実にダウンロードするための最良の方法の1つです。ファイルは多数の小さな断片に分割され、各断片はダウンロードされ、それが本物かどうかが確認されます。(個々のピースは異なるコンピューターからダウンロードできるため、BitTorrentは中央サーバーに負荷をかけることを回避し、Webベースのダウンロードで可能な速度よりも高速になることがよくあります。)

Ubuntu 12.10およびUbuntu 12.04.1のトレントは、ここから入手できます。

ダウンロードするには、BitTorrent「クライアント」が必要です。お好みのものがまだない場合は、Windowsの場合はBitTornadoをお勧めします。

ダウンロードした後、できる限りいくつかシードして、コミュニティに還元することをお勧めします。(あなたのような人からのBitTorrentを使って。)すぐにやる必要はありません。あなたのBitTorrentプログラムに戻って、後でシードすることができます。ダウンロードが完了していないときに終了して、いつでも再開することもできます。

BitTorrentを使用してファイルを修正する

警告:このサブセクションは、残りの回答ほどよく研究されていません。最近、Windows、またはBitTornadoで破損したファイルを修正するためのBitTorrentの使用はテストしていません。私はこれがあなたのために働くと期待していますが、私は確信できません。

BitTorrentはこの目的のために一般的に使用されているわけではありませんがzsync、BitTorrentプロトコル自体は同じ能力を持っています。

いくつかのBitTorrentプログラムはこれを行います-他の人は、あなたが始めたファイルが全く同じサイズでない限り、拒否するか、ファイル全体を最初からダウンロードします。(便利なことに、破損したダウンロードは多くの場合、正しいファイルと同じサイズです。)

古いISOイメージを.torrentファイルと同じフォルダーに入れます。BitTorrentプログラムがそこに急流をダウンロードすることを確認してください。現在のファイルが適切かどうかを確認します。一部のパーツが間違っているとわかると、それらを再ダウンロードできます。

一部のBitTorrentプログラムでは、これを行うには、進行中のtorrentとしてファイルをインポートするか、シードのためにファイルを開く必要があります。


15
これはかなり壮大な答えです。
ナネ

@Nanneありがとう!ところで、BitTorrentを使用して既存のファイルを修復することについて私が提供したよりも多くの詳細を知っている場合は、これを編集して、それに関するより良い情報を提供してください(必要な場合)。
エリアケイガン

うわー...今、これは私が期待していた答えの約10倍です!ありがとう!これを試してみて、質問を受け入れるか、詳細を追加して更新してください!
ヘイルウッド

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.