부팅시 외부 드라이브가 연결되어있는 경우에만 마운트하십시오


70

fstab에 외장 하드 드라이브에 대한 항목이 있습니다.

UUID="680C0FE30C0FAAE0" /jgdata ntfs noatime,rw

그러나 부팅시이 드라이브가 연결되지 않는 경우가 있습니다. 이 "대기를 눌러 S를 누르거나 M 계속"하라는 메시지와 함께 부팅을 통해 나에게 절반 방법을 잎하지만 키 누름은이 (를 포함하여이 단계에 영향을주지 않습니다 Ctrl- Alt- Delete, 심지어 캡 잠금).

의 출력을 확인하기위한 스크립트 작성이 부족한 fdisk -l경우 부팅시이 드라이브가있는 경우에만 어떻게 마운트 할 수 있습니까? 이 드라이브에 대해 fdisk 항목을 사용하는 것이 편리하므로 mount /jgdata장치 이름 대신 입력 할 수 있습니다 .

답변:


73

당신은 모두 올바른 길을 가고 있습니다. 좀 더 깨끗하고 더 나은 방법을 찾았습니다.

에 추가 할 수있는 올바른 옵션은 fstabIS nofail, 그러나, 이후에 가야합니다 auto. 로 변경하면 noauto부팅 중에 마운트되지 않습니다. nobootwait부트 로더에 추가 하면 파티션 fsck검사 를 마치기 전에 파티션을 마운트하거나 부팅 프로세스에 사용되는 파티션을 마운트하지 않는 등 심각한 문제가 발생할 수 있습니다.

위와 같이 변경 한 후 시스템이 종료 된 상태에서 장치를 연결하면 시스템이 정상적으로 시작되고 볼륨이 마운트됩니다. 부팅시 장치가없는 경우에도 정상적으로 부팅됩니다.

유일한 불편은 구성 (테스트 할 변수가 너무 많음)에 따라 시스템이 실행되는 동안 장치를 연결하면 장치가 즉시 마운트되지 않을 수 있다는 것입니다. 이것은 간단 mount -a하거나 mount /specific_device재부팅 하여 해결할 수 있습니다 .


2
온라인에서 찾을 수있는 모든 예제는 자동 전에 nofail을 보여줍니다. 올바른 주문에 대한 문서가 있습니까?
Hackeron

'man fstab'은 필요한 순서의 정확성을 제공하지 않습니다 (centos 7 및 Ubuntu 14.04에서 확인). 그러나 "nofail은이 장치에 오류가 없으면보고하지 않습니다."라고 말합니다. nfs 볼륨에 액세스 할 수없는 경우 부팅시 시간 초과를 기다리는 데 도움이되는지 궁금합니다.
tisc0

16

나는 같은 문제가 있었다-나는 하나의 추가 단계를 수행했다

nofail옵션 을 사용하면 /etc/fstab부팅시 시스템 에서 디스크 및 파티션을 찾습니다. 장치가 연결되어 있으면 파일 시스템이 마운트됩니다. 그렇지 않은 경우 부팅은 정상적으로 계속 진행됩니다.

아치 위키를 참조하십시오 : https://wiki.archlinux.org/index.php/Fstab

UUID=XXXXXXXXXXXXXXX    /myhdd ntfs  auto,nofail,noatime,rw,user    0   0

장치를 연결하거나 연결하지 않고 시스템을 부팅하려고 시도했지만 정상적으로 작동합니다.

내가 달성하지 못한 것은 부팅 후 디스크가 연결되어있을 때 (부팅시 연결되지 않은 경우) 자동 마운트하는 것입니다. mount -a다시 마운트 하려면 루트로 사용해야 합니다.


13

noauto 옵션으로 부팅 프로세스를 계속할 수 있습니까?

존재하는 경우 자동으로 마운트되지 않지만 존재하는 경우 알려 지므로 간단한 마운트 / jgdata가 작동합니다 ... 그런 다음 스크립트 마운트 / jdata는 출력 검사가 필요하지 않습니다. 오류를 잡아서 계속 부팅하십시오.

편집 : 약간의 추가 읽기시 bootwait는 아마도 더 올바른 전달 옵션 일 것입니다 ... (보통 부팅 프로세스 후반에 존재하지 않을 수 있지만 여전히 id, 정지를 일으킬 수있는 네트워크 공유에 사용됩니다)

마운트 스크립트는 다음과 같이 추가 할 수 있습니다 : https://stackoverflow.com/questions/2062543/running-a-script-with-the-help-of-grub-and-menu-lst


답변 해주셔서 감사합니다. 명확히하기 위해 옵션이 fstab 줄에 추가되어야합니까? (편집 : Nvm, 구글 검색. nobootwait가 필요한 것 같습니다.)
Jeremy

1
fstab에서 nobootwait 옵션을 사용했는데 완벽하게 작동합니다. 감사합니다.
제레미

5
/dev/xvdh1 /myfs xfs defaults,nofail,x-systemd.device-timeout=30 0 0

나를 위해 일했다.

nofail ...이 장치가 없으면 오류를보고하지 마십시오.
x-systemd.device-timeout = 30 ... 장치가 없으면 부팅 시간 이 30 초 더 걸립니다 (기본값은 90 초).

출처 : https://wiki.archlinux.org/index.php/fstab#External_devices


이것이 가장 좋고 가장 간단한 답변입니다. 이전 대체이 systemd를 사용하는 OS의 최신 버전에 대한 새로운 구문은 참고 nobootwait구문
cxrodgers

이것은 나를 위해 일했습니다. 키가 장치 시간 초과를 추가하고있었습니다. nofail을 사용하면 udev 시간 초과로 인해 부팅이 실제로 실패합니다. (USB 장치에
고유함

1

부팅하는 동안 권장되는 마운트 방법은 fstab 파일을 통해 시스템에 지시하는 것 입니다. 귀하의 질문을 살펴보면, 거의 당신이 거기 있음을 알 수 있습니다. 자동 마운트 옵션을 사용하도록 장치를 설정하는 지시 만 부족하여 시스템이 장치를 사용할 수있을 때 장치를 마운트 할 수 있습니다.

따라서 fstab에 다음과 같이 줄을 다시 작성하십시오.

# <file system>           <dir>       <type>    <options>         <dump> <pass>
UUID="680C0FE30C0FAAE0"   /jgdata      ntfs      user,auto,rw       0     0

변경 후 저장 한 후 손으로 마운트하십시오.

$ sudo mount -a

다음 사항에 유의하십시오.

  1. 장치의 UUID를 확인해야합니다. UUID는 파일 시스템을 작성할 때 make 파일 시스템 유틸리티 (mkfs. *)에 의해 생성됩니다.
  2. 그것들 <options>은 쉼표로 구분되지만 각 쉼표 뒤에 공백이없는 매우 구체적인 형식으로 작성해야합니다. 이것을 조심하십시오 ;-)
  3. NTFS-3G 유틸리티를 사용하여 처리 할 수있는 NTFS 파일 시스템을 자동 마운트하려고하기 때문에 이것이 원활하게 작동하는지 잘 모르겠습니다 . 지침이 올바르게 작동하지만 NTFS를 자동 마운트하려고 시도한 적이 없습니다. 따라서 실패한 경우 NTFS의 대체 사용에 대해서는 이 마운트 Windows 파티션 을 참조하십시오.

감사!


나는 당신이 말한 것을 대부분 얻었지만 디스크가 감지되지 않으면 멈추는 것 같습니다. 내가 "적절한"방법의 해결 방법 제안 이유입니다
RobotHumans

답변 해주셔서 감사합니다. 참고로이 sudo blkid명령은 UUID를 찾는 좋은 방법입니다.
제레미

fstab에서 정확한 줄을 시도했습니다. HDD가 연결되면 시스템이 정상적으로 부팅됩니다. 그러나 부팅 중에 외부 HDD가 연결되어 있지 않은 경우에도 대기 / 중지 / 수동 복구를 요청하는 메시지가 계속 표시됩니다. 이 프롬프트가 시간 초과되지 않으므로 터미널에 있지 않으면 외장 HDD가 연결되어 있지 않으면 상자가 부팅되지 않습니다.
Jeremy

nofail, 옵션을 추가해야합니다.
kkron

0

나는 같은 문제가 있습니다. 다음에 부팅 할 때 드라이브가 나타나지 않을 때 항목을 주석 처리하기 위해 fstab을 편집하고 있습니다. 그런 다음 드라이브가 있으면 간단히 fstab을 편집하여 주석을 제거하고 mount -a를 실행하십시오. 이것은 완벽한 솔루션이 아닙니다. 시스템에 드라이브가 있으면 자동으로 마운트하거나 존재하지 않으면 자동으로 건너 뛸 수있는 방법을 알아낼 수 있다면 좋을 것입니다. NFS 공유가 자동으로 마운트되어 있고 서버가없는 경우에도 동일한 문제가 발생합니다.


1
수락 한 답변을 확인하고 fstab의 마운트 옵션에 nobootwait를 추가하십시오.
제레미
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.