장치를 설치하려고 하는데 성공하지 못했습니다. 이상한 점은 mount 명령이 성공하고 종료 코드 0을 반환하지만 장치가 마운트되지 않는다는 것입니다. 왜 이런 일이 발생하는지, 어떻게 조사해야 하는지 아시나요? 다음 예를 참조하세요.
[root@mymachine ~]# blkid -o list
device fs_type label mount point UUID
-----------------------------------------------------------------------------------------
/dev/xvda1 xfs / 29342a0b-e20f-4676-9ecf-dfdf02ef6683
/dev/xvdy ext4 /vols/data 72c23c30-2704-42ec-9518-533c182e2b22
/dev/xvdb swap <swap> 990ff722-158c-4ad5-963a-0bc9e1e2b17a
/dev/xvdx ext4 (not mounted) 956b5553-d8b4-4ffe-830c-253e1cb10a2f
[root@mymachine ~]# grep /dev/xvdx /etc/fstab
/dev/xvdx /vols/data5 ext4 defaults 0 0
[root@mymachine ~]# mount -a; echo $?
0
[root@mymachine ~]# blkid -o list
device fs_type label mount point UUID
-----------------------------------------------------------------------------------------
/dev/xvda1 xfs / 29342a0b-e20f-4676-9ecf-dfdf02ef6683
/dev/xvdy ext4 /vols/data 72c23c30-2704-42ec-9518-533c182e2b22
/dev/xvdb swap <swap> 990ff722-158c-4ad5-963a-0bc9e1e2b17a
/dev/xvdx ext4 (not mounted) 956b5553-d8b4-4ffe-830c-253e1cb10a2f
[root@mymachine ~]# mount /dev/xvdx /vols/data5; echo $?
0
[root@mymachine ~]# blkid -o list
device fs_type label mount point UUID
-----------------------------------------------------------------------------------------
/dev/xvda1 xfs / 29342a0b-e20f-4676-9ecf-dfdf02ef6683
/dev/xvdy ext4 /vols/data 72c23c30-2704-42ec-9518-533c182e2b22
/dev/xvdb swap <swap> 990ff722-158c-4ad5-963a-0bc9e1e2b17a
/dev/xvdx ext4 (not mounted) 956b5553-d8b4-4ffe-830c-253e1cb10a2f
[root@mymachine ~]#
fstab을 완료하세요.
[root@mymachine ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon May 1 18:59:01 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=29342a0b-e20f-4676-9ecf-dfdf02ef6683 / xfs defaults 0 0
/dev/xvdb swap swap defaults,nofail 0 0
/dev/xvdy /vols/data ext4 defaults 0 0
/dev/xvdx /vols/data5 ext4 defaults 0 0
답변1
일반적으로 마운트는 문제가 발생하더라도 0을 반환하지 않습니다. 비슷한 문제에 직면했을 때, 그 이유는 systemd가 파일 시스템을 마운트한 후 즉시 마운트 해제했기 때문입니다.
strace mount /dev/xvdx /vols/data5
시스템 호출의 결과를 확인해 볼 수 있습니다 . mount /dev/xvdx /vols/data5; ls -li /vols/data5
mount 명령 직후에 무언가가 설치되었는지 확인할 수도 있습니다 .
답변2
무언가(아마도 systemd)가 파일 시스템을 마운트 해제하고 있다는 허용된 답변 외에도 제 경우에 무슨 일이 일어나고 있는지 더 자세히 설명하겠습니다.
Journalctl에서 알 수 있듯이 실제로 시스템화되어 있습니다.
내 시나리오에서는 fstab에 이것이 있습니다.
/dev/sda6 /fasthome ext4 defaults 0 2
/dev/sda7 /mnt/vms ext4 defaults 0 2
(패스트홈은 암호화 없이 디스크 집약적인 작업을 수행할 수 있는 장소입니다.)
따라서 부팅하기 위해 외부 USB 드라이브를 연결하면 sda가 되고 내부 드라이브는 sdb가 됩니다. 분명히 이러한 마운트 지점이 작동하지 않았으므로 다음과 같이 수정했습니다.
/dev/disk/by-uuid/<some uuid> /fasthome ext4 defaults 0 2
/dev/disk/by-uuid/<other uuid> /mnt/vms ext4 defaults 0 2
그런 다음 실행했는데 mount -a
오류 없이 명령이 완료되었지만 설치되지 않은 것 같습니다. 그래서 저도 mount /dev/disk/by-uuid ...
똑같은 걸 시도하다가 결국 이런 질문을 하게 됐어요.
예, 제거하는 시스템이 있습니다. 제 경우에는 그 이유는 다음과 같습니다.전에 /fasthome
~였다시험을 마친에 설치하려면 /dev/sda6
systemd가 비활성 장치에서 완전히 정지됩니다. 따라서 내 uuid 경로 심볼릭 링크가 /dev/sdb6
systemd를 올바르게 가리키더라도 여기서 일어나는 일이 마음에 들지 않습니다.
이 특별한 경우에 대한 대답은 단순히 재부팅하여 잘못된 장치 참조를 없애는 것입니다.
나는 이 문제를 일으킬 수 있는 유사하지만 다른 상황이 1001개 있을 것이라고 확신하며, 여기의 세부 사항이 사람들에게 그들의 특정 상황을 이해하는 데 충분한 단서를 제공할 수 있기를 바랍니다.
답변3
실행 systemctl daemon-reload
하거나 다시 시작하는 데 도움이 됩니다.
Systemd는 종속성이 누락되었다고 생각하고 즉시 볼륨을 분리합니다.
나는 이것을 찾았다https://github.com/systemd/systemd/issues/1741이것은 이전 답변에서 언급되었습니다.
답변4
이전 항목을 삭제하는 것을 잊어버렸을 때도 같은 일이 일어났습니다./etc/fstab
cli 명령은 정확하지만 fstab 항목은 잘못된 FS 유형을 지정하므로 이는 매우 비합리적인 동작입니다. mount 명령은 둘 다 무시합니다.