Làm cách nào để xác định và thay thế các tệp bị hỏng trong Ubuntu ISO bị hỏng?


14

Vì vậy, đây không chính xác là một vấn đề khi chạy Ubuntu, mà là cài đặt nó.

Mỗi lần tôi cố tải xuống Ubuntu ISO (từ bất kỳ nguồn nào), nó dường như bị hỏng. Đó là, tổng MD5 không bao giờ đúng.

Các tệp Ubuntu ISO đi kèm với một tệp liệt kê tất cả các tệp trong ISO và MD5SUM tương ứng của chúng.

Những gì tôi muốn làm là lặp qua tệp này và so sánh chúng với các tệp của chúng trong ISO và tìm ra các tệp bị hỏng, với hy vọng tôi có thể trích xuất các tệp bị hỏng từ một trong các tệp iso khác, để tạo cài đặt làm việc.

Nhưng, tôi không biết làm thế nào để làm điều này, và tất nhiên, để làm cho nó tồi tệ hơn, tôi phải làm điều này từ Windows 7.

Có ai biết làm thế nào để sửa lỗi này?


Jigdo (cách ưa thích của Debian) có nên làm điều này không? Mục đích chính của nó bây giờ là thực hiện cập nhật delta cho các bản phát hành điểm trên ISO thông qua các gói cập nhật trong các ISO. về Debian ISO và Jigdo
gertvdijk

@gertvdijk Không dành cho ISO máy tính để bàn của Ubuntu, vì chúng hầu như chỉ chứa một tệp duy nhất (xem câu trả lời của tôi ). Đó là lý do tại sao ISO của máy tính để bàn không có .jigdocác tệp liên quan trên các máy chủ tải xuống. Của thay thế đĩa CD và máy chủ CD ISO làm.jigdotập tin. ISO của máy tính để bàn có trình cài đặt Ubiquity, hoạt động bằng cách ghi hệ thống CD trực tiếp vào đĩa và sau đó thực hiện các thay đổi để nó được chuẩn bị để sử dụng (cài đặt) bình thường.
Eliah Kagan

@EliahKagan Điều đó có ý nghĩa. Được rồi, trong trường hợp đó, không nên có các tệp chặn chẵn lẻ PAR để sửa các ISO hoàn chỉnh? Đó là hiệu quả hơn nhiều, dễ dàng hơn nhiều và phổ quát hơn. "Parchive ban đầu được viết để giải quyết vấn đề chuyển tập tin đáng tin cậy trên Usenet, [1] nhưng hiện nay nó thường được sử dụng để bảo vệ bất kỳ loại dữ liệu nào khỏi hỏng dữ liệu, mục nát bit và thiệt hại do tai nạn hoặc độc hại."
gertvdijk

1
Tại sao cải cách hành chính sẽ tốt hơn zsync? Ngay cả khi cải cách hành chính được hỗ trợ chính thức bởi dự án Ubuntu (như zsynclà), liệu có những lợi thế đáng chú ý? Về jigdo: Nó có thể áp dụng cho CD của máy chủ và máy chủ thay thế. Họ sử dụng debian-installer, tạo ra một hệ thống xương trần, chroot và cài đặt các gói. Vì vậy, họ có tất cả các .debtệp, nằm trong nhóm gói (chỉ chứa một vài tệp nhỏ trên đĩa CD của máy tính để bàn). Chúng có thể dễ dàng được lắp ráp với .jigdo(hoặc các phương pháp khác). Bạn có thể muốn đăng jigdocâu trả lời dựa trên máy chủ / thay thế về cách tải xuống chỉ các tệp bị hỏng.
Eliah Kagan

1
@EliahKagan Nên đề cập rằng - PAR có thể thực hiện ngoại tuyến , ví dụ: "bạn cần 3 khối chẵn lẻ để sửa chữa", cho chúng ăn, "được rồi, sửa chữa ... xong!". Zsync thực sự cần một bản sao hoàn chỉnh của nó (từ xa trong trường hợp này). Nhưng vâng, nguyên tắc là như vậy. BTW, tôi thấy rằng Zsync có thể xử lý gziplưu trữ ed rất tốt, nhưng trí thông minh đó là vô dụng trên SquashFS, tôi giả sử? Dù sao, đối với Ubuntu ISO, zsync là con đường để đi, thực sự.
gertvdijk

Câu trả lời:


34

Trên thực tế, tôi biết tập tin nào bị hỏng

Cố gắng kết hợp các tệp từ nhiều ảnh ISO bị hỏng thành một ảnh ISO tốt, không phải là cách tiếp cận tốt cho vấn đề này. Đây là lý do tại sao.

Hầu như tất cả dữ liệu trong ảnh ISO chỉ thuộc về một tệp casper/filesystem.squashfs.

Trên một hình ảnh ISO CD hoặc DVD máy tính để bàn, đó là. Trên hình ảnh CD máy chủ hoặc hình ảnh CD thay thế, đó là một câu chuyện khác.

Thuộc tính Nautilus cho filesystem.squashfs trên CD máy tính để bàn Ubuntu 12.10 i386

Vì vậy, tôi có thể cho bạn biết ngay bây giờ tệp nào gần như chắc chắn bị hỏng trên mỗi ISO bạn đã tải xuống: tệp đó, trên tất cả chúng. Khi một cái gì đó bị hỏng trong Ubuntu ISO, các byte xấu hầu như luôn ở đâu đó trong đó.

filesystem.squashfsbản thân một hình ảnh đĩa; nó được gắn kết như là một phần của việc khởi động hệ thống trên đĩa CD trực tiếp. Bạn có khả năng trích xuất nó từ ISO, sau đó trích xuất nội dung của nó , xem những gì bị hỏng và thay thế các tệp bị hỏng. Mặc dù bạn có thể gắn kết hoặc trích xuất một hệ thống tập tin squashfs trên Windows, nhưng bạn có thể thấy làm như vậy là một nhiệm vụ không cần thiết. Và hình ảnh này được nén, vì vậy không có gì đảm bảo rằng tham nhũng nhỏ trong ISO chứa sẽ không ảnh hưởng đến nhiều tệp.

Hơn nữa, nếu bạn đã thử tải xuống hình ảnh ISO nhiều lần và nó luôn bị hỏng, bạn có thể chắc chắn rằng đó không chỉ là tham nhũng nhỏ . Bạn có thể phải thay thế hàng trăm hoặc hàng ngàn tệp nếu bạn cố gắng làm theo cách này.

Thay vào đó, bạn nên tải xuống hình ảnh ISO bằng phương pháp đáng tin cậy hơn.

Thuận tiện, một trong số chúng ( zsync) tương tự như những gì bạn đang nghĩ, ngoại trừ việc nó sẽ chỉ tải xuống các phần cần thiết của các tệp ISO, thay vì chỉ các tệp cần thiết có trong đó.

Hãy chắc chắn rằng bạn đang so sánh với Hash MD5 đúng

Điều đầu tiên cần làm khi tổng MD5 của bạn sai - đặc biệt là nếu nó sai sau khi bạn tải lại tệp - là đảm bảo bạn so sánh nó với hàm băm MD5 cho đúng tệp.

Tôi đoán là

  • bạn có hình ảnh 12.04 LTS và bạn đang sử dụng hàm băm MD5 cho hình ảnh 12.04.1 LTS
    ( không phải là cùng một tệp ), hoặc
  • bạn có hình ảnh 12.04.1 LTS và bạn đang sử dụng hàm băm MD5 cho hình ảnh 12.04 LTS hoặc
  • bạn có hình ảnh 32 bit ("i386") và bạn đang sử dụng hàm băm MD5 cho hình ảnh 64 bit, hoặc
  • bạn có hình ảnh 64 bit ("amd64") và bạn đang sử dụng hàm băm MD5 cho hình ảnh 32 bit.

Danh sách băm MD5 cho mỗi tệp ở đây.

Nói chung, nếu băm MD5 của bạn sai nhưng giống nhau cho nhiều lần tải xuống, thường là

  • bạn đang so sánh với hàm băm sai, hoặc
  • tệp bị hỏng trên máy chủ (vì vậy nếu đó là trường hợp, hãy tải xuống từ một máy nhân bản khác và, nếu bạn muốn, hãy báo cáo lỗi đối với nội dung trang web của Ubuntu để sự cố được khắc phục) hoặc
  • bạn đang sử dụng proxy hoặc VPN lưu trữ nội dung web và bằng cách nào đó nó đã lưu một bản sao bị hỏng (tải xuống từ một máy nhân bản khác cũng sẽ khắc phục điều đó), hoặc
  • bạn đang tải xuống qua FTP và sự cố với máy chủ hoặc với máy khách FTP của bạn đang khiến tệp chuyển ở chế độ văn bản thay vì chế độ nhị phân (điều này sẽ làm hỏng nó và thường bị hỏng theo cùng một cách), hoặc
  • kết nối của bạn đang bị cố tình chặn và thay đổi bởi một bên thứ ba độc hại đang cố tình cung cấp cho bạn tệp sai (mặc dù điều này thường khá khó xảy ra).

Bạn có thể chọn thủ công một gương tải xuống (khác nhau) ở cuối trang này .

Nếu hình ảnh ISO của bạn thực sự bị hỏng, đây là một số cách để có được một tập tin tốt.

đồng bộ

zsync(xem thêm ở đây ) là một tiện ích có thể biến một tệp đúng một phần thành một tệp hoàn toàn chính xác bằng cách tải xuống chỉ những phần bạn không có phiên bản phù hợp. Ứng dụng chính của nó là để tải xuống các hình ảnh được cập nhật một chút, giống như những hình ảnh từ bản dựng hàng đêm này sang bản khác.

Cách thức zsynchoạt động là thế này: Ai đó cung cấp tệp (như dự án Ubuntu) tạo một .zsynctệp chứa nhiều tổng kiểm tra - tổng kiểm tra tương ứng với nhiều phần nhỏ của tệp, thay vì chỉ một tổng kiểm tra cho toàn bộ tệp. Bạn bắt đầu với bất cứ nơi nào từ không có gì đến toàn bộ tập tin.

Không có gì, toàn bộ tập tin được tải xuống. Với một phần của tệp (nghĩa là một tệp có cùng tên có kích thước khác hoặc cùng kích thước với bất kỳ số lượng khác biệt nhị phân nào), nó chỉ ra phần nào cần được tải xuống và chỉ cần tải xuống các phần đó. Với toàn bộ tập tin, nó không tải xuống bất cứ thứ gì.

Đối với các kết nối Internet rất không đáng tin cậy , zsynckhông tốt hơn nhiều so với trình duyệt web để tải xuống toàn bộ tệp từ đầu, trừ khi bạn sẵn sàng chạy nó hai lần trở lên, trong trường hợp này, các lần chạy sau sẽ khắc phục các sự cố trong các lần chạy trước . Đối với tất cả ngoại trừ các kết nối Internet có tỷ lệ lỗi cao nhất, chạy zsync hai lần hoặc, đôi khi, ba lần trên một tệp là đủ.

Nhưng bạn không phải lo lắng nhiều về việc chạy zsyncnhiều lần. Vì bạn đã - có lẽ - có hầu hết các tệp, vì vậy đó không phải là vấn đề. Và như mọi khi nếu zsynccung cấp cho bạn một cái gì đó bị hỏng, bạn luôn có thể chạy zsynclại để sửa nó.

Bắt zsynccho Windows

zsynctheo truyền thống chạy trên hệ thống giống Unix (không thực sự bao gồm Windows). Tuy nhiên, gần đây một cổng Windows gốc zsyncđã được tạo , vì vậy bạn có thể sử dụng cổng đó.

zsynclà một chương trình dòng lệnh, vì vậy, trong Windows, bạn chạy nó trong Dấu nhắc lệnh. (Một cách để mở dấu nhắc lệnh là nhập cmd.exevào hộp văn bản trong menu Bắt đầu và nhấn Enter. Hoặc, trong Windows XP trở về trước, Bắt đầu> Chạy> cmd.exe.)

Một cách khác: Bắt zsynccho Cygwin

Nếu bạn có bất kỳ vấn đề nào với cổng Windows zsync, bạn luôn có thể sử dụng phiên bản Cygwin. Cygwin cung cấp một môi trường giống như Unix cho Windows. Nó không cho phép các tệp thực thi được biên dịch được chạy (ví dụ: bạn không thể sử dụng zsynctừ gói Ubuntu), nhưng sử dụng các phiên bản đặc biệt của các chương trình được biên dịch cho nó từ nguồn. (Việc biên dịch một chương trình được viết cho các hệ điều hành giống như Unix trong Cygwin sẽ dễ dàng hơn nhiều so với việc biên dịch nó để nó hoạt động tự nhiên trên Windows.)

  1. Trước tiên, hãy lấy trình cài đặt của Cygwin ( setup.exe) từ đây (hoặc sử dụng liên kết trực tiếp này ).
  2. Chạy nó, nhấp vào Tiếp theo trên màn hình đầu tiên, sau đó chọn Cài đặt từ Internet và nhấp vào Tiếp theo một lần nữa.
  3. Trên hai màn hình tiếp theo, đặt Cygwin và thư mục gói cục bộ bất cứ nơi nào bạn thích (mặc định thường là tốt).
  4. Chọn loại kết nối Internet của bạn ( Kết nối trực tiếp thường tốt) và setup.exesẽ tải xuống danh sách các máy nhân bản.
  5. Chọn bất kỳ máy nhân bản nào và nó sẽ tải xuống danh sách các gói có sẵn. Có lẽ bạn sẽ được cảnh báo về việc phiên bản này khác với phiên bản trước như thế nào. Đó không phải là vấn đề, trừ khi bạn đang sử dụng phiên bản Cygwin trước đó trên cùng một máy.

    Cài đặt thông báo Thông báo về việc đây là lần đầu tiên bạn cài đặt phiên bản Cygwin cụ thể này như thế nào.  Nếu bạn chưa sử dụng Cygwin trước đây, điều này có thể bị bỏ qua.  Như nó nói, "Nếu đây là lần đầu tiên bạn cài đặt Cygwin trên hệ thống này thì bạn có thể bỏ qua thông báo này."

  6. Bây giờ bạn có thể chọn những gói để cài đặt. Có một hộp văn bản để tìm kiếm các gói theo tên. Nhập vào zsyncđó (nhưng không nhấn Enter- nếu bạn làm, nó giống như nhấp vào Tiếp theo ). Một mục cho Net sẽ xuất hiện. Mở rộng nó bằng cách nhấp vào +bên trái của nó và bạn sẽ thấy Skip xuất hiện bên dưới nó. Điều đó có nghĩa là nếu bạn không thay đổi bất cứ điều gì, setup.exesẽ không cài đặt zsync.

    Velma Dinkley cài đặt zsync trong Cygwin trong khi cập nhật blog của mình trong "Bài hát của Siren".

  7. Vì vậy, nhấp một lần, nơi nó nói Skip . Bây giờ nó sẽ cài đặt phiên bản ổn định mới nhất có sẵn củazsync cho Cygwin.

    nhập mô tả hình ảnh ở đây

  8. Nhấn Next lần nữa để hoàn tất cài đặt. Môi trường Cygwin, và zsync, sẽ được tải xuống và cài đặt. (Nếu bạn được yêu cầu cài đặt các gói được yêu cầu làm phụ thuộc, hãy tiếp tục và làm như vậy.)

Sau khi cài đặt, hãy mở vỏ Cygwin. Bạn có thể chạyzsync từ đó.

Người giới thiệu

Xin lưu ý rằng trong khi bạn có thể đăng trên danh sách gửi thư của Cygwin về các vấn đề với Cygwin (sau khi đọc và các tài liệu mà nó bảo bạn đọc), họ có thể không hỗ trợ các hướng dẫn không chính thức. cygwincó tài liệu khá tốt, vì vậy giống như các dự án khác có tài liệu tập trung tốt (như OpenBSD), họ hy vọng rằng những người yêu cầu trợ giúp sẽ đọc tài liệu và đang làm việc (hoặc ít nhất là rất quen thuộc với nó).

(Do đó, nếu bạn gặp rắc rối với hướng dẫn của tôi, nơi tốt nhất để hỏi về chúng có lẽ là ở đây .)

zsync trên Ubuntu

Điều này không áp dụng trong trường hợp cụ thể của bạn, nhưng đối với những người muốn sử dụng zsynctrên Ubuntu, chỉ cần cài đặt zsyncCài đặt zsync . Điều này có thể được thực hiện trong Trung tâm phần mềm hoặc bằng cách chạy này trong cửa sổ Terminal ( Ctrl+ Alt+ T):

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

Bây giờ bạn có thể chạy nó từ Terminal.

Liên quan: Làm cách nào để cập nhật ISO với zsync?

Sử dụng zsyncđể sửa ảnh ISO bị hỏng của bạn

Trong Dấu nhắc Lệnh, chuyển đến thư mục chứa tệp ISO bị hỏng của bạn. (Bạn có thể sử dụng cdđể thay đổi thư mục, giống như Ubuntu. Sử dụng dirđể liệt kê nội dung của thư mục.) Đảm bảo rằng tệp bạn có cùng tên tệp như khi bạn nhận được.

Bây giờ chạy zsynctheo một trong những cách sau, tùy thuộc vào hình ảnh ISO của Ubuntu:

  • 12.10, 32-bit:

    zsync http://releases.ubuntu.com/quantal/ubuntu-12.10-desktop-i386.iso.zsync
    
  • 12.10, 64-bit:

    zsync http://releases.ubuntu.com/quantal/ubuntu-12.10-desktop-amd64.iso.zsync
    
  • 12.04.1 LTS, 32 bit:

    zsync http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-i386.iso.zsync
    
  • 12.04.1 LTS, 64 bit:

    zsync http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-amd64.iso.zsync
    
  • 12.04 LTS (trước khi phát hành điểm 12.04.1), 32 bit:

    zsync http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04-desktop-i386.iso.zsync
    
  • 12.04 LTS (trước khi phát hành điểm 12.04.1), 64 bit:

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

Khi bạn chạy một trong những lệnh đó, zsyncsẽ tự động vá ISO của bạn lên đúng phiên bản và bạn sẽ ổn.

Sử dụng zsynccho các tập tin khác

Cú pháp chung là bạn chạy zsynctheo một URL hoàn chỉnh cho .zsynctệp trên máy chủ có cùng tên với tệp bạn có phiên bản và muốn tải xuống (ngoại trừ .zsyncở cuối khóa học).

Trong trường hợp bất kỳ ai cũng muốn làm điều này cho bất kỳ bản phát hành Ubuntu nào khác (hoặc các tệp ISO khác cho cùng một bản phát hành, như phiên bản được tối ưu hóa để khởi động đúng cách trên máy Mac hoặc phiên bản cho thiết bị di động dựa trên ARM), đây là quy tắc nơi đặt các .zsynctệp :

  • Hình ảnh ISO có chứa các trình cài đặt hiện được hỗ trợ, bao gồm cả ISO cho bản phát hành LTS điểm mới nhất và tất cả các bản phát hành LTS được hỗ trợ hiện tại của ISO, được đặt tại:

    http://releases.ubuntu.com/

  • Hình ảnh ISO cho các bản phát hành cuối đời (dù sao bạn không nên sử dụng) hoặc các bản phát hành điểm trước đó của các bản phát hành LTS được hỗ trợ được đặt trong:

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

Chỉ cần nhấp vào liên kết cho phiên bản của bạn và cuộn xuống để xem danh sách tập tin đầy đủ (hoặc tìm kiếm trang cho .zsync). Sau đó sao chép URL và dán nó vào zsynclệnh.

Sử dụng trong "Nâng cấp"

Bạn cũng có thể dùng zsync để "nâng cấp" ISO này sang ISO khác. Nó có thể sẽ phải tải lại hầu hết các tệp nếu bạn đang nâng cấp từ bản phát hành Ubuntu này sang bản phát hành khác. Nhưng nếu bạn đang nâng cấp các bản phát hành điểm (như 12.04 LTS lên 12.04.1 LTS), thì nó không phải tải xuống nhiều như vậy. Đây là một cách tuyệt vời để có được một bản phát hành điểm mới một cách nhanh chóng và hiệu quả.

Chỉ cần đổi tên tệp cũ để nó có cùng tên với tệp mới, sau đó chạy zsyncnhư trên.

BitTorrent

Khi kết nối Internet của bạn có tỷ lệ lỗi cao, BitTorrent thường là một trong những cách tốt nhất để tải xuống các tệp đáng tin cậy. Các tệp được chia thành nhiều phần nhỏ, và mỗi phần được tải xuống và kiểm tra xem đó có phải là thật không. (Các phần riêng lẻ có thể được tải xuống từ các máy tính khác nhau, đó là điều cho phép BitTorrent tránh tải trên máy chủ trung tâm và đạt được tốc độ thường nhanh hơn tốc độ có thể khi tải xuống dựa trên web.)

Các torrent cho Ubuntu 12.10 và Ubuntu 12.04.1 có thể được lấy tại đây.

Bạn sẽ cần một "khách hàng" BitTorrent để tải xuống. Nếu bạn chưa có cái nào bạn thích, đối với Windows, tôi khuyên dùng BitTornado .

Sau khi bạn tải xuống, tôi khuyên bạn nên gieo một số nếu bạn có thể, để trả lại cho cộng đồng. (Với BitTorrent, nó từ những người như bạn.) Bạn không cần phải làm điều đó ngay lập tức - bạn có thể quay lại chương trình BitTorrent của mình và gieo hạt sau. Bạn thậm chí có thể thoát nó trong khi quá trình tải xuống chưa hoàn thành và tiếp tục lại bất cứ lúc nào.

Sử dụng BitTorrent để sửa tệp bạn có

Cảnh báo: Tiểu mục này không được nghiên cứu kỹ như phần còn lại của câu trả lời. Tôi chưa thử nghiệm việc sử dụng BitTorrent để sửa các tệp bị hỏng gần đây hoặc trên Windows hoặc với BitTornado. Tôi hy vọng điều này sẽ làm việc cho bạn, nhưng tôi không thể chắc chắn.

Mặc dù BitTorrent không được sử dụng phổ biến cho mục đích này zsync, nhưng bản thân giao thức BitTorrent cũng có khả năng như vậy.

Một số chương trình BitTorrent sẽ làm điều này - những chương trình khác sẽ từ chối hoặc tải xuống toàn bộ tệp từ đầu - trừ khi tệp bạn bắt đầu có cùng kích thước. (Thuận tiện, tải xuống bị hỏng thường có cùng kích thước với tệp chính xác.)

Đặt hình ảnh ISO cũ trong cùng thư mục với .torrenttệp. Đảm bảo chương trình BitTorrent của bạn tải torrent ở đó. Nó sẽ kiểm tra xem tập tin hiện tại của bạn có tốt không. Khi thấy một số phần bị sai, nó có thể tải lại chúng.

Đối với một số chương trình BitTorrent, bạn phải nhập tệp dưới dạng torrent đang tiến hành hoặc mở tệp để gieo hạt, để thực hiện việc này.


15
Đây là một câu trả lời khá hoành tráng.
Nanne

@Nanne Cảm ơn! Btw nếu bạn tình cờ biết nhiều chi tiết hơn tôi đã cung cấp về việc sử dụng BitTorrent để sửa chữa các tệp có sẵn, vui lòng chỉnh sửa phần này để cung cấp thông tin tốt hơn về điều đó (nếu bạn muốn).
Eliah Kagan

Wow ... Bây giờ đây là khoảng 10 lần câu trả lời tôi đang mong đợi! Cảm ơn! Sẽ thử lại và chấp nhận hoặc cập nhật câu hỏi với một số chi tiết khác!
Hailwood

-1

Bạn có thể sử dụng ISO Master nếu bạn muốn thêm và xóa các tệp vào ISO. Nó có sẵn cho cả Windows và Linux.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.