클라이언트가 로컬 드라이브라고 생각하도록 속이는 방식으로 광 드라이브를 공유하려면 어떻게해야합니까?


10

데스크탑에 두 개의 광 드라이브가 있고 미디어 센터에 공간이 하나도없는 솔직한 상황입니다. 외장 광 드라이브를 구입하는 것만 큼 극단적 인 것을 고려하기 전에 네트워크를 통해 드라이브를 테 더링하는 방법이 있는지 알고 싶습니다.

두 컴퓨터 모두 우분투이며 데스크탑에서 미디어에 액세스하기 위해 이미 NFS 공유가 있습니다.

내가 묻는 이유는 (/ media / cdrom을 내보내는 대신) 마운트 된 NFS 공유가 CDROM 스타일의 장치 처럼 보이지 않기 때문 입니다. 디스크를 자동으로 적절하게 처리하려면 드라이브를 인식하기 위해 XBMC가 필요하기 때문에 이것은 나에게 중요합니다.

이제 나는 광학 드라이브가 우분투의 광학 드라이브처럼 보이게 하는 것을 모릅니다 . 내가 알았다면 아마 내가 뭘해야했는지 알 것입니다. 나는 udev어떤 시점에서 거기에 뜨거운 행동 이 있다고 생각 합니다.

블록 수준 장치 (예 :)를 공유 /dev/sr0하여 두 컴퓨터를 별도로 마운트 할 수 있는 방법이 있습니까? 토끼 구멍을 허물고 iSCSI와 같은 대규모로 엔지니어링 된 솔루션을 모두 볼 수 있습니다. 패스 스루 가상화가 내 앞에서 튀어 나옵니다 ... 확실히 두 개의 우분투 컴퓨터간에 몇 가지 드라이브 모드를 공유하는 간단한 방법이 있습니다!


나는이 충분한 지 모르는 : thegeekstuff.com/2009/02/...를 ---이 특별한 수출하는 경우 나도 몰라 ioctlDVD를 위해 필요합니다. 나는 몇 년 전에 그물을 교환하는 나쁜 생각에 사용하고 지금까지 잊어 버렸습니다 ... (더 나은 링크 : linux-mag.com/id/7118 )
Rmano

비슷한 작업을 수행하는 데 성공적으로 사용한 두 가지 방법은 NFS와 Samba를 사용하는 것이지만, 담당자에게 NFS에 대해 확실히 알고 있다고 가정하고 Samba를 통해이 작업을 수행한다고 가정합니다. 도움이 더 필요한 경우 LMK.
slm 2016 년

@slm 네, 두 컴퓨터 사이에 이미 NFS가 있습니다. CD /media/cdrom를 nfs에 추가하고 다른 쪽 끝 /media/cdrom에서 파일을 마운트했지만 파일을 볼 수 있지만 XBMC가 미디어 변경을 감지하지 못합니다 (마운트 포인트 DVD 라고 생각하지 않습니다 ). 내가 멍청한 짓을하는거야?
Oli

@Oli-알았어. 내 A를보고 그것이 당신이 찾고있는 것인지 알려주세요. 우연히 내가 사용한 다른 방법은 DVD의 ISO를 만들고 NFS를 통해 공유 한 다음 mount -o loop다른 컴퓨터에서 로컬로 공유하는 것 입니다.
slm

답변:


9

네트워크 블록 장치 (NBD)를 사용하여 원하는 것을 달성 할 수 있다고 생각합니다. 주제에 대한 wikipedia 페이지를 보면 라는 도구에 대한 언급이 nbd있습니다. 클라이언트 및 서버 구성 요소로 구성됩니다.

이 시나리오에서는 Fedora 19 랩탑 (서버)에서 CDROM을 설정하고이를 Ubuntu 12.10 시스템 (클라이언트)과 공유하고 있습니다.

설치
$ apt-cache search ^nbd-
nbd-client - Network Block Device protocol - client
nbd-server - Network Block Device protocol - server

$ sudo apt-get install nbd-server nbd-client
CD 공유

이제 서버 (Fedodra 19)로 돌아가서 패키지 관리자 YUM을 사용하여 비슷한 작업을 수행합니다. 완료되면 CD를 넣고이 명령을 실행하여 블록 장치로 공유합니다.

$ sudo nbd-server 2000 /dev/sr0

** (process:29516): WARNING **: Specifying an export on the command line is deprecated.

** (process:29516): WARNING **: Please use a configuration file instead.
$

실행 중인지 확인하는 빠른 방법 :

$ ps -eaf | grep nbd
root     29517     1  0 12:02 ?        00:00:00 nbd-server 2000 /dev/sr0
root     29519 29071  0 12:02 pts/6    00:00:00 grep --color=auto nbd
CD 마운트

이제 Ubuntu 클라이언트로 돌아가서 다음과 같이 nbd-server사용 에 연결해야합니다 nbd-client.

$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes

우분투 시스템에 다음을 사용하여 블록 장치가 있음을 확인할 수 있습니다 lsblk.

$ sudo lsblk -l
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                    8:0    0 465.8G  0 disk 
sda1                   8:1    0   243M  0 part /boot
sda2                   8:2    0     1K  0 part 
sda5                   8:5    0 465.5G  0 part 
ubuntu-root (dm-0)   252:0    0 461.7G  0 lvm  /
ubuntu-swap_1 (dm-1) 252:1    0   3.8G  0 lvm  [SWAP]
sr0                   11:0    1 654.8M  0 rom  
nbd0                  43:0    0   643M  1 disk 
nbd0p1                43:1    0   643M  1 part 

이제 마운트합니다 :

$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
작동 했습니까?

서스펜스가 나를 죽이고 있습니다.

$ sudo ls /mnt/
EFI  GPL  isolinux  LiveOS

Fedora 19 랩탑에 마운트 한 CentOS LiveCD의 내용이 있으며 우분투에서 네트워크의 블록 장치로 마운트 할 수있었습니다.

자동 재생 및 자동 마운팅?

위의 설정에서 DVD를 수동으로 마운트해야했습니다.

이 방법은 자동 재생 및 상자 밖으로, 자동 마운트와 함께 작동할지 여부의 타당성 조사에서, 우분투의 자동 재생이되지 작업을 수행하지만 nbd-clientnbd-serverI 디스크를 꺼낼 때까지 머물렀다. DVD를 다시 넣었을 때 mount우분투 에서 명령 을 실행할 수 있었는데 DVD가 잘 다시 마운트되었습니다.

따라서 우분투에서 UDEV 규칙을 적용 하여이 변경 사항을 감지하고 자동 마운트 / 자동 재생을 수행 할 수 있다고 가정합니다. 나는 그것을 모두 시도하지 않을 것이지만 그것이 작동하지 않을 것이라고 생각하게하는 것을 보지 못했습니다.


1
훌륭한 지침! 완벽하지는 않습니다. 소프트웨어가 여전히 실제 디스크 드라이브가 아니라고 말할 수 있습니다. 나는 ioctl완벽하게 처리되지 않고 있다고 생각 합니다. 그러나, 나는 두 개의 아치 리눅스 시스템에서이 작업을 할 수 있었다 제로 딸꾹질! (Archlinux는 클라이언트와 서버를 'nbd'로 함께 설치했습니다.)
속죄 제한

3

이 방법은 NBD를 사용하지만 대신 새 스타일 구성을 사용합니다. 유일한 장점은 서버를 수동으로 시작할 필요가없고 사용 중단 경고가 표시되지 않는다는 것입니다.

nbd-servernbd-client패키지를 설치 한 후 서버 ( /etc/nbd-server/config) 에서 구성 파일을 편집하여 다음 과 같은지 확인하십시오.

[generic]
# If you want to run everything as root rather than the nbd user, you
# may either say "root" in the two following lines, or remove them
# altogether. Do not remove the [generic] section, however.
    user = nbd
    group = cdrom
    includedir = /etc/nbd-server/conf.d
    allowlist = true

# What follows are export definitions. You may create as much of them as
# you want, but the section header has to be unique.

[dvd]
    exportname = /dev/sr0
    readonly = true

참고 :[dvd] 위 의 레이블은 섹션 머리글이며 대괄호로 묶은 단어 일 수 있습니다. 특정 공유를 식별하는 데 사용되므로 사용하기 쉽고 분명한 이름을 사용해야합니다.

구성 파일에 변경 사항을 저장 한 후 nbd-server를 시작하거나 다시 시작하십시오 (다시 시작하는 예).

sudo service nbd-server restart

그런 다음 클라이언트 시스템에서 다음 명령을 사용하여 서버에 다시 연결하십시오.

sudo nbd-client -N dvd hostname /dev/nbd0

참고 : 교체 dvd위의 서버 구성에 사용되는 이름으로, 그리고 hostname서버 시스템의 호스트 이름.

마지막으로 새로운 공유 블록 장치를 마운트하기 만하면됩니다.

sudo mount /dev/nbd0 /mnt/

계속 받으면 에서 와 줄 Negotiation: ..Error: Server closed connection Exiting.모두를 주석 처리하십시오 . 이것은 당신에게 접근 할 수있는 루트 아래에서 실행 됩니다usergroup/etc/nbd-server/confignbd-server/dev/sr0
Petr Újezdský
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.