부팅 시 USB 플래시 드라이브를 자동으로 마운트하는 올바른 메커니즘은 무엇입니까?

부팅 시 USB 플래시 드라이브를 자동으로 마운트하는 올바른 메커니즘은 무엇입니까?

부팅 시 USB 플래시 드라이브를 자동으로 마운트하는 올바른 방법에 대해 분명히 상충되는 정보를 발견했습니다. 이를 수행하는 방법에 대한 대부분의 지침은 fstab의 항목을 사용하라는 내용입니다. Gnome Disks에는 이 항목을 자동화하는 기능이 내장되어 있습니다. 플래시 드라이브를 플래시 드라이브로 인식하고 fstab에서 해당 항목을 올바르게 생성하는 방법을 알고 있으며 해당 항목이 작동합니다.

반면에, 기본적으로 영구적으로 연결되는 장치를 포함하여 이동식 드라이브는 fstab이 아닌 uDev에서 처리해야 한다는 내용을 읽었습니다. 이에 따라 디스크 관리자(MX Linux와 함께 제공되는 유틸리티)가 내 시스템(플래시 드라이브에 대해 작동하는 fstab 항목 포함)에서 열리고 오류 메시지가 표시됩니다.

I cannot find any existing block devices corresponding to the following devices:
/dev/disk/by-id/usb-Samsung_Flash_Drive_<id> on <mount point>
It is advisable to remove them to avoid failed mount at start-up.

메시지를 무시하면 디스크 관리자는 (올바르게 마운트된) 드라이브를 표시에서 제외합니다. 플러그형은커녕 블록 장치도 아니라는 점에서 문제가 있습니다.

/etc/fstab-disk-manager-save나는 디스크 관리자가 어떤 시점에서 다음 설명으로 시작하여 fstab의 백업을 수행했다고 가정합니다 .

# Pluggable devices are handled by uDev, they are not in fstab.

관찰: 플래시 드라이브를 자동으로 마운트하는 것은 일반적인 요청입니다. 따라서 이를 확립하는 데 도움이 되는 도구가 있을 것으로 기대됩니다. 기존 도구는 모두 fstab에 항목을 생성하여 이 작업을 수행하는 것으로 보입니다. uDev를 사용하려면 자신만의 맞춤 프로그램을 작성해야 하는 것 같고, 이에 대한 도움을 요청하는 프로그래머들이 Stack Exchange에 대해 많은 질문을 합니다(따라서 초보 사용자에게는 적합하지 않은 것 같습니다).

"고장나지 않았다면 고치지 마라"라는 옛말이 있는데, fstab 입력 방법이 효과가 있는 것 같습니다. OTOH, uDev 사용에 대한 조언 및 설치 실패에 대한 경고는 어떤 경우에는 fstab이 작동하지 않는다는 것을 의미합니다. 이는 fstab이 작업에 적합한 도구가 아니며 어떤 경우에는 작동한다고 해서 의존해서는 안 된다는 것을 의미합니다. .

그렇다면 fstab 또는 uDev를 통해 "영구" 플러그인 플래시 드라이브를 마운트해야 하며 디스크 관리자 경고의 위험은 무엇입니까?

답변1

Eduardo Trapani의 의견은 질문의 요점을 조사하는 올바른 방향을 알려 주었습니다. 여기에 오는 다른 모든 사람을 위해 이 자체 답변으로 루프를 닫겠습니다.

성공적인 부팅을 방해하는 문제로 인해 문제를 해결하기 위한 배포판 자체 도구에 액세스할 수 없기 때문에 컴퓨터가 다시 실행되기 전에 문제를 뛰어넘어야 하는 상태가 될 수 있습니다. USB 플래시 드라이브에서 fstab을 사용할 때의 기본적인 위험은 드라이브가 필요한 것으로 간주되고 설치가 완료되지 않으면 부팅이 중단되거나 복구 모드로 들어갈 수 있다는 것입니다.

드라이브가 fstab에 있고 관련 옵션을 통해 지정되지 않은 경우 해당 드라이브는 필수가 아닌 필수이므로 필수로 간주됩니다. 드라이브 분리, 드라이브 오류(USB 플래시 드라이브에서 흔히 발생), 설치 매개변수에 fsck 검사가 지정되어 시스템이 검사를 완료할 수 없는 등 다양한 조건으로 인해 설치가 방해될 수 있습니다.

이러한 문제는 마운트 매개변수에 지정된 옵션을 통해 완화될 수 있지만 이러한 옵션은 배포판에 따라 가용성과 구현이 다릅니다. 따라서 fstab을 사용하여 이동식 드라이브를 마운트하면 배포판에서 사용 가능한 마운트 옵션을 조사하는 것이 좋습니다. Gnome 디스크와 같은 자동화 도구를 사용하여 fstab 항목을 생성하는 경우에도 마찬가지입니다.

설치 옵션은 다음과 같습니다.

  • 실패 없이: 다양한 설명을 읽었습니다.약속이 실패했어요하다. 어떤 사람들은 이 옵션을 단순히 fsck를 실행할 수 없는 경우 테스트를 건너뛰도록 하는 것으로 설명합니다(드라이브가 없으면 자동으로 테스트를 건너뜁니다).자동차옵션). 다른 사람들은 설명합니다약속이 실패했어요보다 일반적으로는 설치를 필수가 아닌 필수로 정의하십시오. 이는 장치가 성공적으로 마운트될 수 있는지 여부에 관계없이 부팅이 계속된다는 의미입니다.

  • 부팅 대기 없음: 다른 설명은 다음과 유사합니다.약속이 실패했어요. 일부 설명에서는 장치의 fsck 검사를 시작하거나 완료하는 기능과 독립적으로 부팅을 수행하는 것으로 목적을 제한하는 것 같습니다. 장치를 사용할 수 있으면 fsck를 순차적이 아닌 백그라운드에서 동시에 실행합니다. 잠재적인 부작용(다음에도 적용됨)약속이 실패했어요), 시작이 완료될 수 있지만 리소스를 (아직) 사용할 수 없으며 작동 문제가 발생할 수 있습니다.

    다른 설명은 제한되지 않습니다기다리지 마세요fsck를 수행하십시오. 어떤 이유로든 드라이브가 마운트되지 않으면 부팅이 중지되지 않는 것으로 설명됩니다.

    한 기사에 따르면 이 두 옵션의 차이점은 다음과 같습니다.약속이 실패했어요드라이브를 사용할 수 없는지 확인하기 전에 최대 몇 분 정도 기다리십시오. 이로 인해 부팅이 지연되고기다리지 마세요즉시 계속하십시오.

    내 이해는기다리지 마세요Ubuntu와 절대 호환되지 않습니다(Ubuntu 기반이 아닌 일부 배포판까지 확장되는지 확실하지 않으며 현재에도 적용되는지 보장할 수 없음).

  • x-시스템 옵션: 장치가 필요한지 아니면 장치만 필요한지, 그리고 시작이 장치를 기다리는 시간을 직접 제어할 수 있는 옵션이 있습니다. 스키마 이름을 따서 명명되며 x-systemd.<option>systemd를 사용하는 배포판에 따라 달라집니다.

답변2

USB 드라이브를 마운트하기 위해 fstab을 사용하는 것은 좋은 습관이 아니며 일반적으로 udev를 통해 처리됩니다.

다음은 "udisksctl"을 사용하여 로그인 시 USB 드라이브를 자동으로 마운트하는 방법입니다(MX Linux에서).

USB 장치를 확인하십시오.

sudo fdisk -l

내 예에서 드라이브는 /dev/sdb1에 위치한 NTFS 드라이브입니다.

로그인 시 드라이브를 마운트하려면 .xsessionrc 파일에 항목을 추가하십시오(마운트 지점은 /media/<user>에 자동으로 생성됩니다).

nano ~/.xsessionrc

다음을 추가하세요.

#!/bin/bash
/usr/bin/udisksctl mount --no-user-interaction -b /dev/sdb1 > /dev/null 2>&1

실행 가능하게 만드세요:

chmod ugo+x ~/.xsessionrc

sudo/password 사용을 방지하려면 정책 규칙 파일(fi 10-udisk.rules)을 만드십시오.

sudo nano /etc/polkit-1/rules.d/10-udisks.rules

다음을 추가하세요.

// Allow udisks2 to mount devices without authentication for users in the "plugdev" group
polkit.addRule(function(action, subject) {
        if ((action.id == "org.freedesktop.udisks2.filesystem-mount-system" || action.id == "org.freedesktop.udisks2.filesystem-mount") && subject.isInGroup("plugdev")) {
                return polkit.Result.YES;
        }
});

필요한 경우 <user>를 "plugdev" 그룹에 추가하세요(또는 다른 그룹 사용).

sudo usermod -aG plugdev <user>

(재)로그인 후 드라이브가 마운트되었는지 확인하십시오.

mount | grep /dev/sdb1

관련 정보