Linux 터미널에서 저장 장치를 마운트 및 마운트 해제하는 방법

Linux 및 macOS와 같은 Unix 유사 운영 체제의 파일 시스템은 터미널을 사용하여 마운트, 마운트 해제 및 다시 마운트 할 수 있습니다. 이것은 강력하고 다재다능한 도구입니다. 여기에 알아야 할 모든 것이 있습니다.

Linux 파일 시스템

Linux, macOS 및 기타 Unix 유사 운영 체제의 파일 시스템은 Windows와 같은 방식으로 스토리지 장치에 대해 별도의 볼륨 식별자를 사용하지 않습니다. Windows는 각 볼륨에 C : 또는 D :와 같은 드라이브 문자를 할당하고 각 볼륨의 파일 시스템은 해당 드라이브 문자 아래에있는 디렉터리 트리입니다.

Linux에서 파일 시스템은 올인원 디렉토리 트리입니다. 마운트 된 저장 장치는 하나의 응집 된 파일 시스템의 필수 부분 인 것처럼 보이도록 해당 트리에 파일 시스템이 접목되어 있습니다. 새로 마운트 된 파일 시스템은 마운트 된 디렉토리를 통해 액세스 할 수 있습니다. 이 디렉토리를 해당 파일 시스템의 마운트 지점이라고합니다.

많은 파일 시스템은 부팅시 또는 런타임 동안 컴퓨터에 연결된 스토리지 볼륨으로 즉석에서 자동 마운트됩니다. 신중한 시스템 관리자는 시스템에 대한 연결을 제어 할 수 있도록 런타임 자동 마운트 기능을 끌 수 있습니다.

이는 런타임 중에 연결된 저장 장치가 자동 마운트되지 않을 수 있으며 수동으로 마운트해야 함을 의미합니다. 파일 시스템을 수동으로 마운트하면 마운트 지점의 위치 및 파일 시스템이 읽기 전용인지 읽기-쓰기인지 여부와 같은 해당 파일 시스템에 대한 결정을 내릴 수 있습니다.

필요하지 않거나 선택을 통해 mount, umountremount명령을 사용하면 Linux 시스템의이 중요한 측면을 제어 할 수 있습니다.

마운트를 사용하여 파일 시스템 조사

마운트에는 많은 옵션이 있지만 컴퓨터에 마운트 된 모든 파일 시스템을 나열하려면 옵션이 전혀 필요하지 않습니다. 간단히 입력 mount하고 Enter 키를 누르십시오.

mount 터미널 창에 연결된 모든 파일 시스템을 나열합니다.

원하는 데이터를 찾기 위해 데이터 덤프를 선택하는 것은 어려울 수 있습니다.

mount관심있는 파일 시스템 만 나열하도록 요청하여 출력을 구체화 할 수 있습니다 . -t(유형) 옵션은 이야기  mount에 대한 보고서 파일 시스템의 유형을.

마운트 -t tmpfs
마운트 -t ext4

예를 들어 파일 시스템 mount만 나열 하도록 요청 했습니다  tmpfs. 우리는 훨씬 더 관리하기 쉬운 결과물을 얻습니다.

tmpfs는, 정규했다 파일 시스템을 마운트 것처럼 파일 시스템이 나타납니다하지만 실제로 휘발성 메모리에 기억되어 tmp에 임시-대신에 영구 저장 장치에 선다.

tmpfs관심있는 파일 유형에 대한 매개 변수 를 대체 할 수 있습니다.

ext4파일 시스템 을 나열하는 명령도 발행했습니다 . 이 테스트 컴퓨터에는 단일 ext4파일 시스템이 있습니다.이 파일 시스템은 장치 ( sda일반적으로 기본 하드 드라이브 인 첫 번째 저장 장치) /에 있고 파일 시스템 트리의 루트 인 에 마운트됩니다 .

다른 지표는 다음을 의미합니다.

  • rw : 파일 시스템을 읽고 쓸 수 있습니다.
  • relatime : 커널이 최적화 된 체계를 사용하여 파일 액세스 및 수정 메타 데이터를 기록합니다.
  • errors = remount -o : 충분히 심각한 오류가 감지되면 진단이 가능하도록 파일 시스템이 읽기 전용 모드로 다시 마운트됩니다.

관련 : 어떤 Linux 파일 시스템을 사용해야합니까?

df로 파일 시스템 조사

df명령을 사용하여 마운트 된 파일 시스템과 해당 마운트 지점이있는 위치를 표시 할 수도 있습니다.

df 매개 변수없이 사용하면 .NET과 동일한 정보 과부하 문제가 발생합니다 mount. 예를 들어, Ubuntu Linux squashfs에는 snap명령을 사용하여 설치된 모든 응용 프로그램에 대해 생성 된 의사 파일 시스템이 있습니다 . 이 모든 것을보고 싶은 사람은 누구입니까?

df무시하거나 다른 파일 시스템 유형 을 강제 로 무시 하려면 -x(제외) 옵션을 사용하십시오 .

df -x 스쿼시

파일 시스템의 이름, 용량, 사용 및 여유 공간, 마운트 지점을 쉽게 볼 수 있습니다.

관련 : Linux 터미널에서 사용 가능한 디스크 공간 및 디스크 사용량을 보는 방법

fstab에서 모든 파일 시스템 다시 마운트

부팅시 마운트 된 모든 파일 시스템 fstab에는에있는 파일 시스템 테이블 인 라는 파일에 항목이 있습니다 /etc.

를 사용 mount하여 "새로 고침"을 수행하고에 나열된 모든 파일 시스템을 다시 마운트 할 수 있습니다 fstab. 정상적인 작동 조건에서는 이것이 필요하지 않습니다. 여러 파일 시스템에 문제가있는 경우 실제로 발생합니다.

을 사용해야 sudo하므로 비밀번호를 입력하라는 메시지가 표시됩니다.

sudo 마운트 -a

확실히, 올바르게 작동하는 컴퓨터에서는 약간 압도적입니다.

그러나 파일 시스템 문제가있는 컴퓨터에서는 다시 마운트하면 문제가 해결 될 수 있습니다. 그렇지 않으면 적어도 화면과 시스템 로그에 진단 메시지가 나타나 문제의 원인을 찾을 수 있습니다.

관련 : Linux fstab 파일이란 무엇이며 어떻게 작동합니까?

ISO 이미지 마운트

ISO 이미지를 쉽게 마운트하여 파일 시스템의 일부로 해당 컨텐츠에 액세스 할 수 있습니다.

이것은 모든 ISO 이미지에서 작동합니다. 이 예에서는 작고 편리하게 다운로드 할 수있는 Tiny Core Linux ISO를 사용하고 있습니다. (GUI가있는 작은 Linux 배포판, 18MB! 아마도 그보다 큰 .mp3 파일이있을 것입니다.)

ISO 이미지와 동일한 디렉토리에서이 명령을 실행하십시오. 마운트하는 ISO 파일의 이름을 대체하십시오.

sudo 마운트 -t iso9660 -o 루프 TinyCore-current.iso / mnt

우리가 사용해야 sudo하므로 암호를 입력해야합니다.

-t(유형) 옵션을 알려줍니다 mount우리가 마운트 파일 시스템의 유형. ISO 파일이므로 iso9660유형 지정자를 제공 합니다.

-o(옵션) 플래그에 추가 매개 변수를 전달하는 데 사용됩니다 mount. 우리의 매개 변수는 loop입니다.

우리는  ISO 이미지에 연결하기 위해 루프 장치 파일 loop을 강제 mount로 사용하고 있습니다. 루프 장치 파일을 사용하면 파일 (예 : ISO 이미지)을 마운트하고 마치 저장 장치처럼 취급 할 수 있습니다.

장치 파일은 연결된 장치가 일반 파일 시스템 파일 인 것처럼 보이도록 인터페이스로 사용되는 특수 파일입니다. 이것은 Linux의 모든 것이 파일 디자인 철학의 일부입니다.

다양한 유형의 장치 파일이 있습니다. 우리는 단지 주목 때 우리는 이전 일을보고 ext4이 테스트 시스템에서 파일 시스템에 장착 된 /하고 불렀다 sda.

더 정확하게 말하면 해당 ext4파일 시스템은 /dev/sda 장치 파일을 통해 파일 시스템에 연결된 저장 장치에 있고에  마운트 된 해당 저장 장치의 파일 시스템에 /있습니다.

물론 ISO 이미지의 이름을 제공해야 mount하며 파일 시스템을 마운트 할 위치를 알려야합니다. 우리는 /mnt.

ISO 이미지가 마운트됩니다. ISO 이미지는 항상 읽기 전용 모드로 마운트된다는 알림이 터미널 창에 나타납니다.

ISO 이미지 탐색

이제 마운트되었으므로 파일 시스템의 다른 부분과 동일한 방식으로 ISO 이미지의 디렉토리를 탐색 할 수 있습니다. ISO 이미지의 파일을 나열 해 보겠습니다. /mnt 기억에 장착 됩니다.

ls / mnt
ls / mnt / cde /

ISO 이미지 마운트 해제

마운트 된 파일 시스템을 마운트 해제하려면 umount명령을 사용하십시오 . "u"와 "m"사이에는 "n"이 없습니다. 명령은 umount "unmount" 가 아니라 "unmount"입니다.

umount마운트 해제중인 파일 시스템을 알려야합니다 . 파일 시스템의 마운트 지점을 제공하면됩니다.

sudo umount / mnt

좋은 소식은 없습니다. 보고 할 것이 없으면 모든 것이 잘된 것입니다.

마운트 포인트 생성

고유 한 마운트 지점을 만들고 사용할 수 있습니다. 라는 이름을 만들고 여기에 isomntISO 이미지를 마운트하겠습니다. 마운트 지점은 단지 디렉토리입니다. 따라서 mkdir새 마운트 지점을 만드는 데 사용할 수 있습니다 .

sudo mkdir / media / dave / isomnt

이제 ISO 이미지를 마운트하기 위해 이전과 동일한 명령 형식을 사용할 수 있습니다. 이 시간 우리는 그것을에 탑재되지 않습니다 /mnt우리가 그것을 마운트거야 /media/dave/isomnt/:

sudo 마운트 -r -t iso9660 -o 루프 TinyCore-current.iso / media / dave / isomnt /

이제 새 마운트 지점에서 마운트 된 파일 시스템에 액세스 할 수 있습니다.

ls / media / dave / isomnt / cde / optional

그러나 이러한 경로는 매우 길어지고 있습니다. 그것은 빨리 지루해질 것입니다. 그것에 대해 뭔가를합시다.

마운트 지점 바인딩

마운트 지점을 다른 디렉토리에 바인딩 할 수 있습니다. 그런 다음 마운트 된 파일 시스템은 원래 마운트 지점이나 여기에 바인딩 된 디렉토리를 통해 액세스 할 수 있습니다.

다음은 실제 사례입니다. 홈 디렉토리에 iso. 그런 다음 ISO 이미지의 마운트 지점을 홈 디렉토리 /media/dave/isomnt의 새 iso디렉토리에 바인딩합니다 .

원래 마운트 지점 /media/dave/isomnt과 새 iso디렉토리 를 통해 ISO 이미지에 액세스 할 수 있습니다 . -B(가) 마운트 지점 및 디렉토리의 이름이에 바인딩의 (바인드) 옵션은 이름이 필요합니다.

mkdir iso
sudo 마운트 -B / media / dave / isomnt / iso
ls iso
ls / media / dave / isomnt
cd iso
ls
cd cde

바인드와 함께 umount 사용

마운트 포인트가 다른 디렉토리에 바인드 된 파일 시스템은 마운트 포인트 바인드 포인트 에서 마운트 해제해야합니다 .

원래 마운트 지점에서 파일 시스템을 마운트 해제하더라도 바인딩 된 디렉토리에서 파일 시스템에 액세스 할 수 있습니다. 파일 시스템도 해당 디렉토리에서 마운트 해제되어야합니다.

sudo umount / media / dave / isomnt
ls iso 
sudo umount iso
ls iso

플로피 디스크 장착

플로피 디스크가 들어있는 플로피 드라이브는 저장 장치입니다. 즉, sd (저장 장치 용) 장치 파일이 물리적 장치에 연결하는 데 사용됩니다. 다음 무료 sd 장치 파일을 설정해야합니다. dfthrough 출력을 파이핑하고 grep"sd"가 포함 된 항목을 찾아이를 수행 할 수 있습니다.

df | grep / dev / sd

이 컴퓨터에는 사용중인 단일 sd 장치 파일이 있습니다. 이것은입니다 /dev/sda. 다음으로 발행되는 sd 장치 파일은 /dev/sdb. 즉, 플로피 드라이브를 컴퓨터에 연결할 때 Linux는 /dev/sdb플로피 드라이브에 연결 하는 데 사용합니다.

우리는 말할 것이다 mount연결되어있는 플로피 드라이브에 플로피 디스크에 파일 시스템을 마운트 /dev/sdb받는 /mnt마운트 포인트입니다.

플로피 디스크를 플로피 드라이브에 넣고 플로피 드라이브를 컴퓨터의 USB 포트에 연결합니다. 다음 명령을 실행하십시오.

sudo 마운트 / dev / sdb / mnt

파일 시스템 레이블

우리는 사용할 수 있습니다 -l와 (라벨) 옵션이 mount있는 경우, 레이블이 파일 시스템에 연결되어있는 것을, 알아. 레이블은 임의의 이름에 지나지 않습니다. 기능적 목적이 없습니다.

-t(유형) 옵션을 사용하여 파일 시스템에 대해서만 mount보고 하도록 요청  vfat합니다.

마운트 -l -t vfat

목록 끝에있는 대괄호 안에있는 레이블을 찾을 수 있습니다. 이 플로피 드라이브의 레이블은 NORTUN입니다.

/mnt마운트 지점을 통해 플로피 드라이브에 액세스 할 수 있습니다 .

cd / mnt
ls
ls -l AMATCH.C

플로피에는 C 언어 소스 코드 파일이 포함되어 있습니다. 한 파일의 날짜 스탬프는 해당 파일이 1992 년 10 월에 마지막으로 수정되었음을 보여줍니다.이 파일은 많은 독자보다 오래되었을 것입니다. (표지로서의 NORTUN의 의미는 말할 필요도없이 시간의 안개 속에서 사라졌습니다.)

sd 장치 파일을 나열하기 위해 df piped through grep명령을 반복하면 이제 두 파일이 있음을 알 수 있습니다.

df | grep / dev / sd

플로피 드라이브가 /dev/sdb예상대로 마운트 된 것으로 표시됩니다 . 드라이브의 플로피 디스크에있는 파일 시스템은에 마운트됩니다 /mnt.

플로피를 언 마운트하기 위해 우리 umount는 매개 변수로 장치 파일을 사용 하고 전달합니다.

sudo umount / dev / sdb

umount Lazy 옵션

마운트 해제를 시도 할 때 사용자 (또는 다른 사용자)가 파일 시스템을 사용하고 있으면 어떻게됩니까? 마운트 해제가 실패합니다.

sudo umount / dev / sdb

사용자의 현재 작업 디렉토리가 마운트 해제하려는 파일 시스템 내에 있기 때문에 실패했습니다. 리눅스는 당신이 앉아있는 브랜치를 보지 못하게 할만큼 똑똑합니다.

이를 극복하려면 -l(lazy) 옵션을 사용하십시오 . 이로 인해 umount파일 시스템이 안전하게 마운트 해제 될 때까지 기다립니다.

sudo umount -l / dev / sdb
ls
cd ~
ls / mnt

umount명령이 실행 되더라도 파일 시스템은 여전히 ​​마운트되어 있으며 사용자는 정상적으로 파일을 나열 할 수 있습니다.

사용자가 디렉토리를 홈 디렉토리로 변경하면 플로피 파일 시스템이 해제되고 마운트 해제됩니다. 파일을 나열하려고하면 /mnt결과 가 생성되지 않습니다.

Samba 공유 마운트

Samba는 Linux 및 Unix 계열 운영 체제와 Windows 운영 체제간에 네트워크 공유에 상호 교환 적으로 액세스 할 수 있도록하는 소프트웨어 서비스 세트입니다.

Samba 설정은이 기사의 범위를 벗어납니다. 그러나 사용 가능한 Samba 공유에 대한 액세스 권한이있는 경우이를 Linux에 마운트 할 수 있습니다.

테스트 머신과 동일한 네트워크에 연결된 Raspberry Pi에는 Samba 공유가 있습니다. Samba 이름이 "share"인 백업이라는 디렉토리입니다. SSH 연결을 만들고 공유 디렉터리의 내용을 살펴 보겠습니다. 공유 디렉토리는 Pi에 마운트 된 USB 스틱에 있습니다.

사용자 이름은 pi이고 Raspberry Pi의 네트워크 이름은 marineville.local.

ssh [email protected]
ls / media / pi / USB64 / 백업
출구

사용자가 SSH명령을 실행하고 Raspberry Pi 암호를 입력하라는 메시지가 표시됩니다.

암호를 제공하고 인증됩니다. 터미널 창 프롬프트 pi@marineville는 Raspberry Pi에 연결되어 있기 때문에로 변경됩니다 .

에 공유 디렉토리의 내용이 나열됩니다 /media/pi/USB64/Backup. 내용은 두 개의 디렉토리, 하나는라고 dave하나는 pat. 이제 우리는 Samba 공유를 마운트 할 때 무엇을 기대해야하는지 알게되었습니다.

exitRaspberry Pi에서 연결을 끊으려면 입력 하고 프롬프트가 dave@howtogeek.

Samba를 사용하려면 cifs-utils패키지 를 설치해야 합니다.

apt-getUbuntu 또는 다른 Debian 기반 배포를 사용 하는 경우이 패키지를 시스템에 설치하는 데 사용 합니다. 다른 Linux 배포에서는 Linux 배포의 패키지 관리 도구를 대신 사용하십시오.

sudo apt-get 설치 cifs-utils

설치가 완료되면 다음과 같은 명령을 사용하여 공유를 마운트하고 사용자 환경에 맞게 IP 주소, 공유 이름 및 마운트 지점 (이미 존재해야 함)을 변경합니다.

sudo mount -t cifs -o credentials = / etc / samba / creds, uid = 1000, gid = 1000 //192.168.4.13/share / media / dave / NAS

이 명령의 일부를 분해 해 보겠습니다.

  • -t cifs : 파일 시스템 유형은 cifs입니다.
  • -o credentials = / etc / samba / creds, uid = 1000, gid = 1000 : 옵션 매개 변수 creds는 보안이 설정된 파일의 경로 이며 Raspberry Pi 사용자의 사용자 이름과 암호를 포함합니다. 파일 시스템 루트의 소유자 및 그룹을 설정하는 데 사용되는 사용자 ID (UID) 및 그룹 ID (GID).
  • //192.168.4.13/share : Samba 공유가있는 장치의 네트워크 위치 및 공유 디렉토리의 Samba 이름. 공유의 루트는라는 디렉토리 Backup이지만 Samba 공유 이름은로 설정됩니다 share.
  • / media / dave / NAS : 마운트 포인트의 이름. 미리 마운트 지점을 만들어야합니다.

마운트 지점에 /media/dave/NAS액세스하여 네트워크를 통해 Raspberry Pi의 공유 디렉토리에 액세스합니다. Raspberry Pi에서 davepat.

cd / media / dave / NAS

파일 시스템 생성 및 마운트

당신은 사용 dd후 사용, 이미지 파일을 생성하는 명령을 mkfs그 안에 파일 시스템을 만들 수 있습니다. 그런 다음 해당 파일 시스템을 마운트 할 수 있습니다. .NET을 연습하고 실험하는 좋은 방법입니다 mount.

우리는 사용하는 if말 (입력 파일) 옵션 dd에서 0 값의 스트림을 사용하는 /dev/zero입력 파일로.

of(출력 파일)라는 새로운 파일입니다 geek_fs.

bs(블록 크기) 옵션을 사용하여  1MB의 블록 크기를 요청합니다.

count옵션을 사용하여 dd출력 파일에 20 개의 블록을 포함하도록 지시합니다.

dd if = / dev / zero of./geek_fs bs = 1M count = 20

그러면 이미지 파일이 생성됩니다. 값은 0입니다.

명령을 geek_fs사용하여 파일 내부에 작동하는 파일 시스템을 만들 수 있습니다 mkfs. -t(유형) 옵션은 우리가 파일 시스템을 선택할 수 있습니다 유형 . 우리는 ext4시스템을 만들고 있습니다.

mkfs -t ext4 ./geek_fs

이것이 작동하는 파일 시스템을 갖기 위해 필요한 전부입니다.

마운트 /media/dave/geek 한 다음을 사용 chown 하여 소유자 및 그룹 소유권을 설정하여 액세스를 허용합니다.

sudo 마운트 ./geek_fs / media / dave / geek
sudo chown dave : users / media / dave / geek

작동합니까? 새 파일 시스템으로 변경하고 파일을 복사 해 보겠습니다.

cd / media / dave / geek
cp / etc / fstab. 
ls -l

디렉토리를 새 파일 시스템으로 변경할 수 있었고 성공적으로 /etc/fstab파일 사본을 만들었습니다 . 작동 중입니다!

mount마운트 된 파일 시스템을 나열하는 데 사용 하지만 (type) 옵션을 ext4 사용하여 출력을 파일 시스템으로 제한하면 -t이제 두 개의 마운트 된 ext4파일 시스템이 있음을 알 수 있습니다.

마운트 -t ext4

파일 시스템 다시 마운트

파일 시스템을 다시 마운트하면 -o remount옵션이 사용됩니다. 일반적으로 파일 시스템을 읽기 전용 (테스트) 상태에서 읽기-쓰기 (프로덕션) 상태로 변경하기 위해 수행됩니다.

플로피 드라이브를 다시 마운트하겠습니다. 이번에는 -r(읽기 전용) 플래그를 사용합니다. 그런 다음 우리는 파이프거야 mount통해 grep플로피 파일 시스템의 세부 사항에와보세요.

sudo 마운트 -r / dev / sdb / mnt
마운트 | grep / mnt

보시다시피 강조 ro표시된 것은 파일 시스템이 읽기 전용으로 마운트되었음을 ​​나타냅니다.

(읽기-쓰기) 플래그 -o remount와 함께 옵션을 사용하면  rw하나의 명령으로 새 설정으로 파일 시스템을 마운트 해제하고 다시 마운트 할 수 있습니다.

sudo 마운트 -o 다시 마운트, rw / mnt

의 배관 반복 mount을 통해 grep는 것을 우리 쇼 ro로 대체되었습니다  rw (강조). 이제 파일 시스템이 읽기-쓰기 모드입니다.

마운트 | grep / mnt

(아님) 파일 시스템 이동

한 번의 명령으로 파일 시스템을 마운트 해제하고 다른 마운트 지점에 다시 마운트 할 수있었습니다.

-M(이동) 옵션은  mount특별히 그렇게 할 수 있도록 존재합니다. 그러나 .NET으로 이동 한 Linux 배포판에서는 더 이상 작동하지 않습니다 systemd. 그리고 그것은 대부분의 큰 이름입니다.

우리가에서 파일 시스템을 이동하려고하는 경우 /mnt./geek, 그것은 실패하고 아래와 같은 오류 메시지를 제공합니다. 파일 시스템에있는 파일을 나열하려고하면 ./geek결과가 반환되지 않습니다.

sudo 마운트 -M / mnt ./geek
ls ./geek

해결 방법은 -B 이전에 원래 마운트 지점을 새 마운트 지점에 바인딩하는 데 사용한 (bind) 옵션을 사용하는 것입니다.

sudo 마운트 -B / mnt ./geek
ls ./geek

원래 마운트 지점을 확보하지 않는 것 외에도 실제 결과는 동일합니다.

최종 관찰

사용 --make-private은 옵션 이었다 가능하기에 걸릴 장소로의 이동 강제로 systemd리눅스의 버전. 그 기술은 두 가지 이유로 여기에 제시되지 않았습니다.

  1. 예측할 수없는 동작이있을 수 있습니다.
  2. 영구적이지 않았으며 재부팅 할 때마다 반복해야합니다.

Devuan 리눅스 사용은  SysV하지 초기화하기 systemd. 컴퓨터에 최신 버전의 Devuan이로드되고 테스트되었습니다. -M(이동) 옵션으로 해당 시스템에 예상했다.

 (이동) 옵션 의 systemd문제 외에도 -M사용법이  간단 mount하고 umount간단해야합니다. 이것은 손상된 시스템에 직면했을 때 소매를 잡는 훌륭한 명령이며 파일 시스템을 다시 손으로 연결해야합니다.