2009-12-12 14 views
9

Tôi thực sự quan tâm đến việc làm thế nào một hệ điều hành hoạt động, từ POST trong quá trình khởi động vào hạt nhân, giao diện, v..vLàm thế nào tôi có thể đặt một khu vực khởi động được biên dịch vào một thanh USB hoặc đĩa?

Vâng, tôi phải bắt đầu ngay từ đầu: Các bootsector

Hầu hết các hướng dẫn chỉ chỉ định cách lấy bootbinpper .bin của bạn vào thanh USB cho người dùng Linux.

Nhưng khi tôi đang sử dụng XP Tôi muốn hỏi làm thế nào để tôi nhận được của tôi 512 byte .bin vào đúng vị trí trên USB của tôi, và thats chắc chắn không phải bằng cách sao chép nó với nhà thám hiểm: D

Trả lời

9

Có dd cho Windows mà tôi sử dụng thường xuyên. http://www.chrysocome.net/dd

sử dụng nó như vậy:

dd if = c: \ tập tin của tôi \ boot.bin of = \\ \ z:. Bs = 512 count = 1

nơi 'z:' là ký tự ổ đĩa của ổ USB được gắn kết, 'if' là tệp đầu vào và 'của' là thiết bị đầu ra, bs là kích thước khối và số đếm là số khối để sao chép

Tôi làm điều này khoảng mỗi tháng một lần để xem sự phát triển của Haiku tiến triển như thế nào. Họ cung cấp hình ảnh đĩa thô được ghi vào ổ USB theo cách này.

CẢNH BÁO: Việc nhận sai ký tự ổ đĩa có thể phá hủy bộ khởi động CỦA BẠN, vì vậy hãy đảm bảo bạn thực hiện sao lưu và trở nên thoải mái khi sử dụng dd trước. Tôi đã mất rất nhiều dữ liệu cho sức mạnh của nó.

+0

@Randomlnsano: Bạn nhận được +1 cos của tôi Tôi không bao giờ biết một đ tồn tại cho Windows! Mát mẻ! :) – t0mm13b

+1

Nên lưu ý rằng điều này ghi vào phần đầu của phân vùng mà Z: ánh xạ tới, chứ không phải MBR (Câu hỏi có chút mơ hồ). Nếu bạn muốn ghi đè sector khởi động MBR thì tôi nghĩ bạn phải sử dụng phiên bản mới hơn của chrysocome 'dd' và sử dụng tham số' od' để viết tương đối với đầu của thiết bị vật lý (và không chỉ phân vùng) . Điều này sẽ ghi đè lên MBR 'dd nếu = c: \ my files \ boot.bin od = z: bs = 512 count = 1' –

+0

Khi bạn sử dụng Windows để định dạng ổ đĩa USB theo mặc định, nó tạo ra tương đương với ổ cứng với một phân vùng đơn và đánh dấu phân vùng đó là bootable.Windows viết một MBR (Master Boot Record) hoạt động như một bộ nạp chuỗi. Khi bạn khởi động từ USB đó, BIOS sẽ tải MBR và nhảy vào nó. Mã MBR hoạt động như một bộ tải chuỗi tìm thấy phân vùng được đánh dấu có khả năng khởi động, tải 512 byte đầu tiên của phân vùng đến vị trí bộ nhớ 0x0000: 0x7C00, và sau đó nhảy đến nó. Khu vực khởi động phân vùng không biết đó là chuỗi được nạp và nó cho rằng BIOS đã tải nó trực tiếp như thể nó đã là MBR thực –

0

Có lẽ bạn có thể sử dụng rawritewin để thực hiện công việc cho bạn?

Cách khác là sử dụng UNetBootIn nhưng từ kinh nghiệm của tôi trong việc gây rối nó, nó yêu cầu ISO được ghi vào USB .. để có thể không hoạt động trong trường hợp của bạn, nhưng bạn có thể thử tạo ISO để chuẩn bị được ghi vào USB ...

Các vấn đề liên quan