Nếu tôi sao chép ổ USB có thể khởi động sang USB khác, nó có tạo ổ đĩa khởi động trùng lặp không?


37

Tôi nghĩ đó là một câu hỏi ngớ ngẩn nhưng một tìm kiếm với Google dường như cho thấy rằng thậm chí không thể sao chép / dán dữ liệu trên một ổ đĩa có thể khởi động vào một USB khác? Nhưng ngay cả khi chúng tôi có thể sao chép nó, tại sao nó không hoạt động? (đó là tạo một ổ đĩa khởi động trùng lặp)


2
"Sao chép / dán" nghĩa là gì? Rõ ràng, bạn phải sao chép các phần thực sự biến nó thành ổ đĩa khởi động (chẳng hạn như bộ tải khởi động, v.v.) nhưng không có lý do gì điều này không hoạt động.
Jörg W Mittag

Câu trả lời:


56

Chỉ cần sao chép các tập tin sẽ không tạo ra một ổ đĩa khởi động. Không chỉ các tệp trên ổ flash USB làm cho nó có khả năng khởi động, mà là cấu hình bảng phân vùng , siêu dữ liệu về tổ chức của nội dung ổ đĩa, cho PC biết nếu nó có khả năng khởi động và cho dù đó là MBR hay GPT .

Theo ghi nhận tại cyberciti.biz :

Mỗi đĩa và phân vùng có một số loại chữ ký và chuỗi siêu dữ liệu / ma thuật trên đó. Siêu dữ liệu được sử dụng bởi hệ điều hành để định cấu hình đĩa hoặc đính kèm trình điều khiển và gắn đĩa trên hệ thống của bạn.

Tuy nhiên, bạn có thể sao chép ổ đĩa flash bằng một số công cụ, chẳng hạn như dd , Sao lưu dễ dàng Todo , và ClonezillaRufus mã nguồn mở và tuyệt vời . (Cảm ơn Alex vì đã nhắc nhở về dd và Rufus).

Thậm chí có những thiết bị điện tử tự động sao chép ổ đĩa flash .


15
Trên thực tế, bạn thậm chí không cần dd: đơn giản cpsẽ thực hiện công việc - chỉ cần đảm bảo sử dụng nó trên nút thiết bị thay vì nội dung hệ thống tệp.
Ruslan

Uh, thật đáng ngạc nhiên. Hoặc có thể không. Nhưng với tôi ít nhất.
Jörg W Mittag

1
'mèo <nguồn> đích' sẽ hoạt động ổn định vì cho rằng đích không phải là điểm bắn hơn nguồn.
ysdx

@JoL bạn chưa thấy bình luận (hiện đã bị xóa) của Jörg. Của tôi là một câu trả lời cho khẳng định của mình rằng cpsẽ chỉ cần sao chép nút thiết bị. Để tránh nhầm lẫn, giờ tôi cũng đã xóa bình luận của mình.
Ruslan

21

Chỉ sao chép các bản sao với các tệp trong các phân vùng được định dạng. Bạn sẽ không thể thực hiện những việc đặc biệt cần thiết cho quy trình khởi động như đặt cờ khởi động, viết trình tải khởi động hoặc đôi khi thậm chí sao chép các tệp bình thường vào đúng vị trí (đọc: sector) trong phân vùng và đặt thuộc tính của tệp / quyền. Trừ khi bạn may mắn có sẵn những thứ đó, do việc tạo đĩa khởi động trước đó, một công cụ định dạng ghi bộ tải khởi động vào MBR, v.v., bạn sẽ cần thực hiện thêm các bước để làm cho đĩa có thể khởi động


Cụ thể khi khởi động ở chế độ BIOS , BIOS tìm kiếm khu vực đầu tiên (MBR) để xem có chữ ký khởi động hợp lệ 0xAA55 không . Nếu có thì nó tải sector đó và chuyển điều khiển sang bộ tải khởi động trong MBR. MBR mô tả cấu hình phân vùng, do đó nó không thể nằm bên trong phân vùngkhông phảithứ bạn có thể sao chép bằng các công cụ bình thường.

Ngoài ra, do MBR quá nhỏ không hữu ích, hầu hết các bộ tải khởi động hiện đại chia quá trình khởi động thành nhiều giai đoạn , với mã khởi động trong MBR sẽ tải giai đoạn tiếp theo. Các giai đoạn nội bộ hơn nữa một lần nữa thường được đặt trong các khu vực bên ngoài các phân vùng . Một số có thể đặt nó vào EBR , nhưng grub thường đặt giai đoạn thứ hai của nó vào vùng trống giữa phân vùng đầu tiên và MBR được gọi là khoảng cách sau MBR. Đó là lý do tại sao nếu người ta không căn chỉnh các phân vùng đúng cách, sẽ không có khoảng trống để đặt mã khởi động, dẫn đến lỗi nhúng

Nhiều bộ tải khởi động như LILO hoặc bộ tải khởi động Windows / DOS cũ cũng cung cấp thông tin mã cứng trong MBR, như vị trí của giai đoạn tiếp theo hoặc của các tệp hệ thống. Họ không làm việc bằng cách đọc dữ liệu phân vùng mà thay vào đó là đọc một số khu vực được mã hóa cứng, vì sẽ mất quá nhiều mã để phân tích hệ thống tệp rất khó bị nén vào các khoảng trống nhỏ như khoảng cách MBR hoặc sau MBR. Ngay cả grub cũng hỗ trợ mã hóa cứng như vậy . Điều đó có nghĩa là một số tệp hệ thống phải ở vị trí chính xác , theo từng khu vực, mà bạn cũng không thể đạt được với một bản sao bình thường. Đó là lý do bạn thấy "tệp hệ thống không di chuyển" trong khi chạy Windows defragmenter hoặc thu hẹp hệ thống tệp, điều này đôi khi không thực sự chính xác, vì chỉ là Windows quá sợ di chuyển các tệp đó mặc dù các trình tải khởi động hiện đại thông minh hơn rất nhiều và không quan tâm đến những điều đó.

Và sau tất cả, bạn cũng cần đặt phân vùng khởi động là kích hoạt để cho trình tải khởi động biết phải khởi động cái gì. Điều đó phải được thực hiện bằng một công cụ phân vùng hoặc chỉnh sửa hex bằng tay, vì nó cũng được đặt bên ngoài khu vực phân vùng.


Trong UEFI mọi thứ dễ dàng hơn nhiều. Nó biết về các hệ thống tệp FAT (và thậm chí nhiều hệ thống tệp hơn khi triển khai không chuẩn), do đó các tệp khởi động được lưu trữ trong phân vùng hệ thống EFI, AKA ESP . UEFI tải các ứng dụng * .efi trong ESP, sau đó sẽ tải các hệ điều hành.

Phần mềm UEFI hỗ trợ khởi động từ các thiết bị lưu trữ di động như ổ flash USB. Với mục đích đó, một thiết bị di động cần được định dạng bằng hệ thống tệp FAT12, FAT16 hoặc FAT32, trong khi bộ tải khởi động cần được lưu trữ theo phân cấp tệp ESP tiêu chuẩn hoặc bằng cách cung cấp một đường dẫn hoàn chỉnh của trình tải khởi động đến hệ thống quản lý khởi động.

Vì vậy, về cơ bản, bạn chỉ cần sao chép (các) tệp * .efi vào ESP và đặt các tệp hệ thống vào đúng thư mục. Tuy nhiên, vẫn còn một vấn đề nhỏ vì phân vùng FAT chứa tệp * .efi phải được đánh dấu là ESP trong bảng MBR hoặc GPT bên ngoài các phân vùng, không thể thực hiện được bằng cách sao chép như trên. Cụ thể, loại phân vùng phải được thay đổi từ 0Ch / 0Bh / bất cứ điều gì thành EFh trong MBR và thành C12A7328-F81F-11D2-BA4B-00A0C93EC93B trong GPT, vì ESP không thực sự là FAT12 / 16/32 mà là một hệ thống tệp độc lập dựa trên họ hệ thống tập tin FAT


Và vẫn còn nhiều sơ đồ phân vùng khác như nhãn đĩa BSD hoặc APM cần được sửa đổi khác nhau để khởi động. Hoặc các thanh USB có thể đã được định dạng mà không có bảng phân vùng (AFAIK Windows thực hiện điều này theo mặc định), do đó làm cho nó có khả năng khởi động sẽ khác. Nhưng áp dụng giới hạn tương tự: bạn cần sửa đổi các khu vực không được phân vùng


1
Đây là câu trả lời chính xác.
Margaret Bloom

Đó là câu trả lời thấu đáo nhất , vâng, nhưng tôi không tin nó đúng hơn câu trả lời được chấp nhận, IMO trả lời một câu hỏi đơn giản theo cách đơn giản.
Ian Kemp

@IanKemp vấn đề với câu trả lời được chấp nhận không phải là nó đơn giản (điều đó tốt) mà là về mặt kỹ thuật không rõ ràng nhất :)
Margaret Bloom

Nếu bạn đánh dấu âm lượng thanh USB là hoạt động - sử dụng tiện ích "đĩa" của windows cmd hoặc bất kỳ trình quản lý phân vùng bên thứ 3 nào - bằng cách sao chép nội dung của hình ảnh ISO vista / 7/8/10, thanh đó sẽ trở thành thanh khởi động của windows; không có điều ramdrive hoặc gắn furthur xảy ra khi khởi động. Vì vậy, rõ ràng, sau khi đánh dấu một thanh là hoạt động, tất cả những gì bạn cần là một tệp hình ảnh khởi động nhỏ (bootmgr và bootmgr.efi trên windows tôi đoán) trên thanh; không cần các công cụ phức tạp. Tôi mong đợi một thủ tục dòng lệnh đơn giản trên Linux, cách dễ dàng hơn so với windows.
Màu đỏ. Có

3

Theo truyền thống, BIOS boot yêu cầu một điểm đánh dấu vô hình đặc biệt. Dưới đây là một vài ví dụ :

  • Nếu phân vùng MBR ("đĩa cứng"), thì trong bảng phân vùng
  • Nếu đĩa mềm / siêu mềm ("Ổ đĩa ZIP"), về cơ bản toàn bộ ổ đĩa được định dạng mà không có bảng phân vùng, thì trong vài byte đầu tiên
  • Nếu là CD thì El Torito

Trong những trường hợp đó, bạn không thể chỉ cần sao chép tập tin. Ổ đĩa kết quả sẽ không thể khởi động được vì nó thiếu các điểm đánh dấu đặc biệt.

Tuy nhiên , UEFI boot đặc biệt, thông minh hơn và đặc biệt giải quyết các vấn đề này. Như mọi khi, tôi khuyên bạn nên đọc bài đăng trên blog này để biết sơ lược về UEFI. Lưu ý đặc biệt của phần khởi động dự phòng. Điều này cũng được thảo luận chi tiết hơn một chút ở đây .

Tất cả những gì bạn cần để làm việc này là một tệp trong một đường dẫn cụ thể trong một phân vùng mà phần sụn sẽ tìm kiếm. Để có khả năng tương thích tối ưu 1 , vâng, đây phải là phân vùng có định dạng FAT32 được đánh dấu là Phân vùng hệ thống EFI trong đĩa được phân vùng GPT. Tuy nhiên, hầu hết các chương trình cơ sở cũng sẽ tìm kiếm các phân vùng (đơn) trên các đĩa được phân vùng MBR và không phân vùng (siêu mềm).

Điều này có nghĩa là tất cả những gì bạn thực sự cần cho khởi động UEFI là một phân vùng đơn có định dạng 1 FAT32 có chứa một mục khởi động dự phòng. Trên kiến ​​trúc x86_64, điều này có nghĩa là bạn chỉ cần một \EFI\BOOT\BOOTx64.EFItệp. Bạn chỉ có thể sao chép từ ổ đĩa flash này sang ổ đĩa khác, bao gồm cả tệp đó và mọi thứ sẽ hoạt động.


Tiêu chuẩn 1 FAT32 và GPT được yêu cầu. MBR và superfloppy không phải là AFAIK, nhưng hỗ trợ cho chúng khá phổ biến trong các phần cứng máy tính để bàn. Máy tính xách tay là một chút bí truyền hơn; máy tính bảng là một sự thay đổi và Mac EFI là duy nhất.

2 Tiêu chuẩn UEFI yêu cầu hỗ trợ FAT32. Một số chương trình cơ sở cũng có thể hỗ trợ NTFS (mặc dù không được bảo đảm) và bạn thực sự có thể nhúng trình điều khiển NTFS trong FAT32 ESP.


0

Nó phụ thuộc vào những gì bạn có nghĩa là 'bản sao'.

Sao chép và dán vào GUI của hệ điều hành của bạn? Không, điều đó sẽ không hoạt động - một số tệp mà nhu cầu USB có thể khởi động sẽ được coi là "ẩn" / vô hình và không được sao chép.

Có những loại bản sao sẽ làm việc. Điều này thường được gọi là 'hình ảnh' một USB mới, để phân biệt với 'sao chép' nội dung của nó. Cách phổ biến nhất để làm điều này là một công cụ dòng lệnh, nhưng các tùy chọn đồ họa có sẵn nếu bạn cần chúng.

Đó là đủ nền để tìm kiếm của bạn trên đường!

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.