오류: 이미 존재하므로 설치 중입니다. /etc/fstab에 중복된 항목이 있습니까?

오류: 이미 존재하므로 설치 중입니다. /etc/fstab에 중복된 항목이 있습니까?

다음 명령을 사용하여 여러 FTP 사용자에게 동일한 대상 디렉터리에 대한 액세스 권한을 부여하려고 하면:

sudo mount --bind /home/max/home/ExLand /home/riven/Desktop/ExLand
sudo mount --bind /home/r1ven/home/ExLand /home/riven/Desktop/ExLand/etc/fstab

/etc/fstab

/home/r1ven/home/ExLand /home/riven/Desktop/ExLand none bind 0 0
/home/max/home/ExLand /home/riven/Desktop/ExLand none bind 0 0

/var/log/syslog에서 오류가 발생했습니다.

Dec 12 18:32:31 riven kernel: [    2.131397] systemd-fstab-generator[292]: Failed to create unit file /run/systemd/generator/home-riven-Desktop-ExLand.mount, as it already exists. Duplicate entry in /etc/fstab?
Dec 12 18:32:31 riven kernel: [    2.131711] systemd[284]: /usr/lib/systemd/system-generators/systemd-fstab-generator failed with exit status 1.

결과적으로 다시 시작한 후에는 하나의 디렉터리만 마운트되었습니다.

/home/r1ven/home/ExLand /home/riven/Desktop/ExLand 바인딩 없음 0 0

두 번째 디렉터리는 마운트되지 않았으며 액세스할 수 없습니다.

내가 뭘 잘못했는지 말해줘? )

디렉토리를 수동으로 마운트하면 재부팅하기 전에 모든 것이 잘 작동하고 두 FTP 사용자 모두 하나의 디렉토리를 사용할 수 있습니다. 그러나 재부팅 후에는 위 디렉토리만 사용할 수 있고 두 번째 디렉토리는 완전히 액세스할 수 없지만 수동으로 다시 마운트하면 나타날거야.

답변1

동일한 대상 마운트 지점에 두 개의 바인드 마운트를 서로 겹쳐서 수행하고 있습니다.

1 단계:

sudo mount --bind /home/max/home/ExLand /home/riven/Desktop/ExLand

/home/max/home/ExLand이제 에 액세스 할 수 있습니다 /home/riven/Desktop/ExLand.

2단계: ( /etc/fstab명령 끝에 있는 단어가 오타라고 가정)

sudo mount --bind /home/r1ven/home/ExLand /home/riven/Desktop/ExLand

이렇게 하면 /home/r1ven/home/ExLand사이트에 액세스 할 수 있지만 /home/riven/Desktop/ExLand이전 번들 설치에는 더 이상 액세스할 수 없습니다. (기존 세션이 있는 경우 cd해당 버전이 /home/riven/Desktop/ExLand계속 표시될 수 있지만 /home/max/home/ExLand새로 방문하면 해당 /home/r1ven/home/ExLand버전만 표시됩니다.)

사용자가 max변경하는 경우 두 개의 별도 장소가 있기 때문에 /home/max/home/ExLand사용자는 r1ven해당 변경 사항을 모든 곳에서 볼 수 없습니다 ./home/r1ven/home/ExLand

유닛 이름은 대상 마운트 지점 이름을 기반으로 생성되므로 이와 같이 두 개의 겹치는 마운트 대상이 둘 다 동일한 유닛 이름을 가지게 되는데 이는 버그입니다 systemd-fstab-generator. .mount이와 같이 중첩되는 마운트 지점은 별로 유용하지 않고 일반적으로 버그이므로 이 버그는 아마도 좋은 것일 것입니다.

목표가 사용자 maxr1ven사용자 모두에게 액세스 권한을 부여하는 것이라면 /home/riven/Desktop/ExLand바인드 마운트를 반대 방향으로 수행해야 합니다.

이렇게 생각해보세요: for mount --bind,원천데이터가 상주하는 곳입니다진짜이것은표적보고 싶은 곳입니다.

따라서 /etc/fstab항목은 다음과 같습니다.

/home/riven/Desktop/ExLand /home/r1ven/home/ExLand none bind 0 0
/home/riven/Desktop/ExLand /home/max/home/ExLand none bind 0 0

나중에 max에 파일을 추가 하면 /home/max/home/ExLand사용자는 해당 파일도 거기에서 볼 r1ven수 있습니다 (올바른 디렉터리 권한을 가정할 때). 이제 두 위치 모두 실제로 액세스할 수 있기 때문입니다 ./home/r1ven/home/ExLand/home/riven/Desktop/ExLand

관련 정보