Có cách nào sạch để có quyền truy cập độc quyền vào phân vùng vật lý trong Windows không?


11

Tôi đang cố gắng, trong Windows 7, để chạy một máy ảo với VMWare Player từ một hệ điều hành được cài đặt trên một phân vùng vật lý. Tuy nhiên, khi tôi khởi động máy ảo, VMWare Player nói rằng nó không thể truy cập ổ đĩa vật lý để ghi.

Đây dường như là một vấn đề thường được thừa nhận trong cộng đồng VMWare, vì Windows Vista đã giới thiệu một tính năng bảo mật mới hấp dẫn khiến cho việc ghi vào ổ đĩa thô mà không có quyền truy cập độc quyền trước tiên.

Tôi đã giải quyết vấn đề và tìm thấy một vài cách giải quyết. Tuy nhiên, những cái sạch dường như chỉ hoạt động trên toàn bộ đĩa vật lý chứ không phải trên các phân vùng.

Vì vậy, tôi sẽ được để lại với các giải pháp bẩn . Nói tóm lại, nó kết hợp với MBR để xóa bất kỳ dấu vết nào của các phân vùng sẽ sử dụng, khiến Windows quên chúng đi, sau đó khôi phục MBR để chúng tôi có thể khởi chạy VM.

Tôi không chắc chắn tôi muốn làm điều đó. Có cách nào để VMWare có được quyền truy cập độc quyền vào phân vùng mà không yêu cầu tôi phải loại bỏ nó không? Những gì tôi đang tìm kiếm, tôi cho rằng, là một cách để chỉ phân vùng ngoại tuyến thay vì toàn bộ ổ đĩa vật lý.


Nhiều infos liên quan đến tiền thưởng.

Tôi có một thiết lập khởi động kép: Mac OS là hệ điều hành chính của tôi và tôi cũng đã cài đặt Windows. Nhiều như tôi có thể chạy Windows trong một máy ảo nếu tôi không muốn khởi động lại, tôi muốn có thể chạy Mac OS trong một máy ảo khi tôi ở dưới Windows.

Mục tiêu của tôi là chạy phân vùng Mac OS chính của tôi từ VMWare trong Windows, giống như tôi chạy Windows từ VMWare Fusion. (Vì đây là hệ điều hành chính của tôi, tôi không có kế hoạch vá kernel hoặc bất cứ điều gì để nó hoạt động trong máy ảo.) Tôi đã tạo máy ảo từ VMWare Fusion (vì nó có loại VM "Mac OS X Server" ) sau đó chuyển nó sang Windows và sửa đổi nó từ VMWare Player. Có vẻ như gần như hoạt động, khi HĐH vào màn hình tải và sau đó VM chết vì không thể truy cập \\.\PhysicalDrive0.

Virtual Box thất bại thậm chí còn khó hơn, vì nó khởi động Mac OS ở chế độ dài dòng và gặp sự cố rất nhanh (nhưng dường như có thể truy cập vào phân vùng), vì vậy tôi nghĩ sẽ dễ dàng truy cập VMWare vào phân vùng của tôi hơn là chạy Virtual Box nó

Về mặt pháp lý, tôi sẽ chạy một bản Mac OS X trên một máy có nhãn Apple, vì vậy tôi không sao.


Vấn đề thú vị. Nó có hoạt động không nếu bạn tạo một phân vùng trống, không được định dạng?
nhắt

@nhinkle Tôi không có bất kỳ phòng phân vùng dự phòng nào tôi có thể kiểm tra trên ổ đĩa nội bộ của mình. Tuy nhiên, từ những gì tôi đọc được, có vẻ như Windows sẽ khóa bất kỳ phân vùng nào nó có thể nhận ra; và tôi có thể xác nhận rằng nó vẫn sẽ khóa những người không có điểm gắn kết.
zneak

@zneak: Trước đây tôi đã sử dụng TrueCrypt để khắc phục các hạn chế của Windows. Vì nó có trình điều khiển đĩa riêng, nó có thể ghi vào đĩa. Tại sao bạn không thử tạo phân vùng thành đĩa ảo TrueCrypt?
harrymc

@harrymc Tôi chưa thử. Tôi có cần mã hóa phân vùng Mac OS không?
zneak

Bạn sẽ cần tạo một khối TrueCrypt trên phân vùng (mất tất cả nội dung). Điều này có thể giúp hiển thị cách làm, nhưng cũng xem trợ giúp TrueCrypt.
harrymc

Câu trả lời:


5

Tôi có đi qua chỉ có một giải pháp khả thi, sử dụng ảo điều khiển đĩa miễn phí imdisk cùng với devio (truy cập ổ đĩa từ xa và chuyển đổi). Vì imdisk là trình điều khiển kernel, nó có thể ghi vào phân vùng. Thật không may, vì devio hoạt động ở chế độ người dùng, tôi không chắc chắn liệu phương pháp này có hiệu quả với bạn hay không.

devio có thể có được một phân vùng vật lý và xuất bản nó trên mạng. Ví dụ:

devio -r 9000 \\.\PhysicalDrive0 2

không xuất bản từ đĩa thứ nhất phân vùng thứ hai trên cổng TCP 9000 và sẽ chờ kết nối trên cổng này. Tốt hơn nên vô hiệu hóa tường lửa trong khi kiểm tra điều này và chạy devio với tư cách quản trị viên.

Để xác định phân vùng được xuất bản này là một đĩa cứng mới và độc lập, hãy sử dụng:

imdisk -a -t proxy -o ip -f 127.0.0.1 -m R:

sử dụng localhost sẽ tạo ra một đĩa cứng mới gọi là R không phải là phân vùng của bất cứ thứ gì. Bây giờ bạn có thể thử xem bạn có thể sử dụng đĩa cứng R giả vờ trong máy ảo VMware không.

Cách tiếp cận này được giải thích chi tiết trong Devio: Truy cập và mua lại ổ đĩa từ xa .

Nếu điều này không hiệu quả, bạn sẽ phải:

  1. Chấp nhận một giải pháp nguy hiểm sửa đổi MBR.
  2. Từ bỏ sử dụng MacOS trong Win7 dưới dạng VM, sử dụng các tệp trong phân vùng Mac thông qua các ứng dụng Windows (có vấn đề về ký tự cuối dòng).
  3. Sử dụng một sản phẩm Hệ thống tệp ảo, chẳng hạn như Hệ thống tệp gọi lại ELDOS , mặc dù tôi nghi ngờ rằng vấn đề này đáng giá cho bạn vài nghìn đô la.
  4. Từ bỏ Windows 7 và hạ cấp xuống XP.
  5. Sửa đổi nguồn của imdisk để làm trình điều khiển kernel, nó sẽ tạo một đĩa giả vờ trực tiếp trên phân vùng vật lý mà không cần devio.

Nếu được thực hiện đúng cách, chỉnh sửa MBR không nên là mối đe dọa quá lớn. Ngay cả khi nó bị hỏng, nó không phải là phân vùng hệ điều hành chính, vậy ai quan tâm? Bạn có thể dễ dàng sửa chữa nó!
Đột phá

@BreakENC Tôi nghĩ bạn bỏ lỡ thực tế là cả hai hệ điều hành đều nằm trên cùng một đĩa.
zneak

@zneak: Tôi nghĩ @BreakENC là đúng - có một số chương trình có thể lưu và sau đó khôi phục MBR trong trường hợp khẩn cấp.
harrymc

Ngoài ra, chỉ để ghi lại, thật không may VMWare không thể sử dụng ổ đĩa ảo từ imdisk.
zneak

Điều đó đúng, bởi vì ImDisk không đăng ký chính xác với Trình quản lý Mount NT bằng mã kiểm soát IOCTL_MOUNTMGR_CREATE_POINT ; thay vào đó, nó trực tiếp tạo ra một liên kết tượng trưng cho ký tự ổ đĩa và tất nhiên kernel không coi đó là một khối lượng hợp pháp. Tôi đã cố gắng để nó hoạt động trước đây, nhưng tôi đã không thành công nhiều. (Đó là lý do tương tự tại sao bạn không thể sử dụng âm lượng ImDisk cho việc lắp VHD.)
user541686

2

Nó phụ thuộc vào mức độ tuyệt vọng của bạn để làm việc này, nhưng tôi sẽ nói rằng điều đó là có thể, với các bước "chỉ" hai "dễ dàng" (đọc: tàn bạo):

  1. Viết trình điều khiển để bỏ qua các hạn chế do Windows đặt, sử dụng cờ tài liệu (bán -?) SL_FORCE_DIRECT_WRITE.

  2. Kết nối CreateFilevà / hoặc WriteFilegọi từ VMWare bằng thư viện như EasyHook (tôi đã nói với bạn thật dễ dàng!) Để giao tiếp với tệp theo cách thủ công với trình điều khiển của bạn, có thể giao tiếp với trình điều khiển bằng cách sử dụng DeviceIoControl.

Nó thực sự nghe không tệ lắm, nếu bạn biết tìm thông tin ở đâu để vượt qua các hạn chế ... Tôi đã tự móc các ứng dụng như Nero để kiểm tra IOCTL_SCSI_PASS_THROUGHcác cuộc gọi để tôi có thể tạo thư viện ghi CD của riêng mình và điều này sẽ không quá khó khăn; viết một trình điều khiển sẽ là phần khó hơn, nhưng có thể quản lý được.


Biên tập:

Tôi đoán bạn đã tìm ra điều này, nhưng cấu trúc bạn cần sửa đổi được gọi là FLT_IO_PARAMETER_BLOCK cho IRP_MJ_READ. Không chắc nó sẽ dễ như thế nào, nhưng nó không quá khó.


Nghe có vẻ vui. Tôi sẽ xem xét vào ngày mai.
zneak

@zneak: Nếu bạn nhìn vào câu trả lời của tôi, imdisk là trình điều khiển đĩa ảo nguồn mở có sẵn, gần như đã có những gì bạn muốn.
harrymc

@Mehrdad Tôi có một vấn đề rất giống nhau, bạn có thể giúp tôi không? CreateFile: Truy cập vào bị từ chối ngay cả với các đặc quyền của Quản trị viên - Win7
Ali
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.