Gắn kết một ISO hầu như sử dụng thiết bị / dev / sr0


7

Tôi đang thực hiện một nghiên cứu về cách CD-ROM có thể được gắn hầu như và tất cả những gì tôi có thể tìm ra là gắn kết bằng các thiết bị lặp.

mount -o loop disk1.iso /mount-point

Điều này khá dễ dàng.

Tôi hiểu rằng đó /dev/sr0là một thiết bị khối và nó trỏ đến một số bộ đệm trong kernel và trình điều khiển thiết bị kernel đặt hệ thống tập tin (nếu bất cứ điều gì nó không chắc chắn) trong bộ đệm đó và khi chúng tôi sử dụng mountnó sẽ gắn hệ thống tập tin vào điểm gắn kết được chỉ định .

Nhưng tôi tự hỏi liệu chúng ta có thể gắn ISO theo lựa chọn của mình không (ví dụ disk1.iso) bằng cách sử dụng thiết bị CD-ROM SCSI /dev/sr0(không thay đổi bất cứ thứ gì trong kernel) như được thực hiện trong Vmware và Virtualbox, nơi chúng ta có thể chỉ định ISO và nó tự động mô phỏng Phần cứng CD-ROM và ISO có thể được gắn bằng /dev/sr0thiết bị?

Vấn đề chính mà tôi thấy ở đây là làm thế nào /dev/sr0/sẽ được liên kết với iso?


1
Làm thế nào bạn sẽ nói với hệ điều hành rằng / dev / sr0 trỏ đến một tệp ISO cụ thể?
Anthon

@Anthon vâng, đó là điều tôi đang tự hỏi làm thế nào chúng ta có thể liên kết / ánh xạ iso tới / dev / sr0
Tejendra

Đó là một ý tưởng tồi ... hãy để udev (hoặc người trợ giúp hạt nhân yêu thích của bạn) xử lý công cụ trong / dev; tuy nhiên, bạn luôn có thể liên kết với nó ... đó là * nix sau tất cả ... mọi thứ đều là một tệp.
Thủy thủ

Một cái gì đó mà tôi vừa nghĩ đến ... tìm kiếm lệnh OLD mknod.
Thủy thủ

1
Nếu bạn có một yêu cầu là không có gì có thể thay đổi trong kernel và việc liên kết / dev / sr0 đến / dev / loop0 không được chấp nhận, thì tôi nghĩ cách duy nhất để làm điều này là gắn thiết bị phần cứng USB bên ngoài mô phỏng Ổ đĩa CD. Có một số phần cứng chuyên dụng có thể thực hiện việc này, chẳng hạn như bộ chuyển đổi KVM, cũng như các mô-đun iLO trên một số hệ thống cho phép bạn gắn hình ảnh ISO qua mạng, nhưng có thể hình dung được với một máy tính khác có bộ lưu trữ đĩa cục bộ có chứa hình ảnh ISO .
Đánh dấu Plotnick

Câu trả lời:


5

Điều ở đây là /dev/sr0được liên kết với trình điều khiển thiết bị kernel. Trình điều khiển thiết bị đó sẽ cho phép truy cập vào CDROM vật lý nếu có sẵn thông qua nút đó; VMWare và VirtualBox mô phỏng phần cứng như bạn đề cập và do đó trình điều khiển hạt nhân và thiết bị nghĩ rằng chúng đang giao tiếp với phần cứng.

Không /dev/sr0trực tiếp trỏ đến một bộ đệm nhất định, nó cung cấp một giao diện cho giao diện thiết bị khối cho phép các quá trình không gian người dùng xác nhận nội dung của thiết bị phần cứng.

Nếu bạn muốn làm cho hình ảnh có sẵn dưới dạng một thiết bị khối, thì lựa chọn duy nhất của bạn (ngoài phần cứng ảo hóa và giả lập) là sử dụng các thiết bị lặp với losetup... hoặc để viết trình điều khiển thiết bị thay thế của riêng bạn, nhưng tôi hy vọng đó không phải là một lựa chọn khả thi bây giờ

Nếu bạn muốn làm cho hình ảnh đó có sẵn như /dev/sr0(chúng ta đang nói về việc giả mạo một số phần mềm yêu cầu quyền truy cập vào CDROM tại vị trí đó?) Thì bạn có thể di chuyển tệp đó sang ví dụ /dev/sr0.movedvà sau đó liên kết phù hợp /dev/loopXvới /dev/sr0. Tất nhiên, nếu phần mềm được đề cập thử các lệnh đặc biệt chỉ áp dụng cho các thiết bị CDROM, thì điều này sẽ không hoạt động. Nếu không, nó không phải là một vấn đề.


nhưng trong liên kết tượng trưng, ​​nó sẽ tạo tệp mục tiêu trong khi trong hệ thống của chúng tôi / dev / sr0 đã có mặt ?? Và bạn đang viết, tôi muốn sử dụng lệnh đẩy để lần lượt không hoạt động vì cuối cùng nó sẽ được thực thi trên thiết bị được liên kết
Tejendra

Bạn có bỏ lỡ phần chuyển thiết bị sang tên khác (để bạn có thể di chuyển thiết bị trở lại sau đó) không? Bạn không thể sử dụng hiện tại /dev/sr0cho mục đích của bạn! Bạn cần một thiết bị lặp. Nếu bạn khăng khăng muốn có hình ảnh có sẵn /dev/sr0thì đây là cách duy nhất.
wurtel

@Tejendra bạn dự đoán điều gì sẽ xảy ra khi bạn chạy lệnh đẩy trên thiết bị không thực sự là đĩa? Nó có thể làm gì tốt?

Điều này trông giống như nó chỉ là một cách khác dù sao chúng ta đang sử dụng loopmount, tôi nghĩ cách duy nhất có thể là sử dụng loopmount như liên kết / dev / sr0 để thiết bị lặp sẽ mang lại cảm giác sử dụng / dev / sr0 nhưng nó không phục vụ mục đích chính.
Tejendra

@ WumpusQ.Wumbley tôi thực sự chỉ muốn loại bỏ cdrom nhưng không biết rằng cuối cùng nó sẽ cố gắng đẩy tệp chính là thiết bị lặp
Tejendra

2

Nếu bạn sử dụng cdemu thay vì mount loop, nó sẽ cho hiệu quả mong muốn. Nó mô phỏng một thiết bị cd-rom. Khi gắn kết chỉ cung cấp quyền truy cập vào các tập tin. Nó cũng có thể được sử dụng để gắn các tập tin cue / bin và các loại hình ảnh khác. Điều này cho phép khả năng gắn kết các hình ảnh có nhiều kết hợp theo dõi hoặc dữ liệu / bản nhạc.


Tôi cần automount khi tôi mount hình ảnh trên cdemu, ví dụ khi tôi gắn một tập tin hình ảnh với cdemu, tôi cần / dev / sr0 được sử dụng bởi cdemu, mount on / cdrom. Đối với Trò chơi có Dữ liệu / Âm nhạc, trò chơi cần có.
inukaze
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.