리눅스에서 장치를 마운트하는 방법?


75

Linux에서 장치를 마운트하기위한 mount 명령에 대한 리소스를 읽었지만 그 중 어느 것도 (적어도 나에게는) 명확하지 않습니다.

전체적으로이 대부분의 가이드는 다음과 같이 말합니다.

$ mount
(lists all currently mounted devices)

$ mount -t type device directory
(mounts that device)

for example (to mount a USB drive):
$ mount -t vfat /dev/sdb1 /media/disk

나에게 분명하지 않은 것 :

  • "장치"에 무엇을 사용해야하는지 어떻게 알 수 $ mount -t type device directory있습니까? 즉,이 명령에서 "/ dev / sdb1"을 사용하여 $ mount -t vfat /dev/sdb1 /media/diskUSB 드라이브를 마운트 해야한다는 것을 어떻게 알 수 있습니까?

  • "-t"매개 변수는 여기서 무엇을 정의합니까? 유형?

맨 페이지 ( $ man mount)를 두 번 읽었 지만 여전히 뭔가 빠진 것 같습니다. 명확히하십시오.


@rozcietrzewiacz 나는 내 마음이 제대로 작동하지 않았다는 것을 인정해야한다. @Let_Me_Be가 언급 할 때 /dev/disk/by-id"by-id"가 무언가로 대체되어야하며 명령으로 발행되어야한다고 생각했습니다. 실제로 디렉토리가 될 수 있다는 생각은 들지 않았습니다. 이것은 아마도 초기 단계에서 Windows-> Linux 사용자에게 발생합니다! (또는 그것은 나 뿐이다 :)
its_me

@rozcietrzewiacz 그것은 공평하지 않습니다.
Alex Chamberlain

4
을 삭제하십시오 -t type. mount일반적으로 그것을 알아낼 수 있고 일반적으로 그것을 할 수 없다면, 당신이 뭔가 잘못하고 있다는 합리적인 표시입니다.
Alex Chamberlain

3
@AlexChamberlain 나는 내가 가지고 다니는 것을 볼 수 있습니다. @its_me에 사과드립니다. 나는 "만약 당신이 정말로 매뉴얼을 읽는다면, 당신은 -t옵션 에 대해 묻지 않을 것입니다 "라고 썼어야했다. 질문의 다른 부분 (어떤 장치가 /dev/항목으로 표시되는지 결정하는 방법 )은 매우 합리적입니다.
rozcietrzewiacz

답변:


81

fdisk를 사용하여 어떤 종류의 파티션을 가지고 있는지 알 수 있습니다.

fdisk -l

쇼 :

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   204796619   102398278+   7  HPFS/NTFS
/dev/sda2       204797952   205821951      512000   83  Linux
/dev/sda3       205821952   976773119   385475584   8e  Linux LVM

그렇게하면 sda1,2 및 3 파티션이 있음을 알 수 있습니다. -t 옵션은 파일 시스템 유형입니다. NTFS, FAT, EXT 일 수 있습니다. 내 예에서 sda1은 ntfs이므로 다음과 같아야합니다.

mount -t ntfs /dev/sda1  /mnt/

USB 장치는 일반적으로 vfat이고 Linux는 일반적으로 ext입니다.


나는 페도라 VM (Windows 7 호스트)에 있습니다. 방금 usd 드라이브를 연결하고 (VM이 실행 중이므로 Windows에서 인식하지 못함) 명령을 실행했습니다 $ fdisk -l. 그러나 Linux 및 Linux LVM 파일 시스템 만 나열됩니다 (두 개만). vfat, ntfs, hpfs 또는 ext 등이
아님

아마도 이것은 마운트 문제가 아니라 장치 인식 문제 일 수 있습니다. / var / log / message 파일을 살펴보면 USB 장치에 문제가 있는지 표시해야합니다.
ghm1014

따라서 일반적으로 실행중인 Linux 시스템에서이를 찾는 방법입니다 : 플러그인 펜 드라이브 (예), 명령을 실행 # fdisk -l하고 장치 (/ dev / *) 및 파일 시스템 (vfat, ntfs, hpfs, ext 등)을 찾으십시오. . 권리?
its_me

일반적으로 그렇습니다. 그놈을 실행하는 경우 USB 및 외장 하드 드라이브를 마운트하지만 수동으로 마운트하지 않습니다. Windows와 마찬가지로 팝업 창이 표시됩니다.
ghm1014

마지막 의심입니다. 이 파일들이 유일한 공통 파일 시스템 장치 파일입니까? / dev / sd * 또는 / dev / hd *는 하드 디스크 용이고, / dev / cdrom은 CD-ROM 용이고 / dev / fd *는 플로피 용입니다. 다른 거있어?
its_me

17

나는 이것에 정말로 녹슬었다가 다시 오기 시작했다. 이것이 당신의 질문에 대답하지 않는다면, 나는 그것을 잘못 읽었을 것이다.

Alibi : Ubuntu 14 릴리스입니다. 귀하의 마일리지가 다를 수 있습니다.

내가 사용하는 lsblk다른 내 마운트 포인트를 얻기 위해 mount 나를 위해 lsblk보다 쉽게 읽을입니다mount

장치를 마운트하기 전에 디렉토리가 작성되어 있는지 확인하십시오.

sudo mkdir /{your directory name here}
sudo mount /dev/{specific device id} /{your directory name here that is already created}

계속 진행해야하지만 새 디렉토리에 대한 보안 권한을 확인하여 원하는 디렉토리인지 확인하십시오.


7

요즘에는 자세한 경로를 사용하여 특정 장치를 마운트 할 수 있습니다.

예를 들면 다음과 같습니다.

mount /dev/disk/by-id/ata-ST31500341AS_9VS2AM04-part1 /some/dir
mount /dev/disk/by-id/usb-HTC_Android_Phone_SH0BTRX01208-0\:0 /some/dir

이에 대한 자세한 정보는 어디서 찾을 수 있습니까? 나는 아직 리눅스에서이 "자세한 것"에 들어 가지 않았기 때문에 혼란 스럽다.
its_me

1
@Aahan 글쎄, 이것들은 단지 심볼릭 링크 /dev/sd*입니다. 있습니다 /dev/disk/by-id(장치 / 파티션 ID) /dev/disk/by-uuid, - (수동 사용하기에 매우 유용하지 장치 / 파티션 UUID가) /dev/disk/by-path, (장치가 연결 방법에 따라 달라집니다) /dev/disk/by-label(파티션 레이블이있는 경우)
Let_Me_Be

이러한 세부 정보 (파티션 ID, 장치 경로, 레이블 등)는 어디서 구할 수 있습니까?
its_me

1
@Aahan 글쎄, 그것이 장치 가보고하는 것입니다. ID는 장치 이름, 모델 또는 일련 번호 또는 조합입니다. 경로는 동일하지만 디스크가 연결된 방식에 대해보고되므로 예를 들어 pci-0000:00:1f.2-scsi-3:0:0:0-part3(pci 장치 0000 : 00 : 1f.2, 세 번째 포트, 세 번째 파티션) 레이블은 레이블입니다. uuid는 컴퓨터에서 고유하게 생성됩니다. id (변경되지 않는 신분증을 원할 경우 사용합니다).
Let_Me_Be

1
/ dev / disk / by-id를 언급 할 때 "by-id"가 무언가로 바뀌어 명령으로 실행되어야한다고 생각했습니다. 실제로 디렉토리가 될 수 있다는 생각은 들지 않았습니다. 인내심을 가져 주셔서 감사합니다. LOL, 나는 말도
안됐다

3

mount(명령)은 일반적으로 장치에서 파일 시스템의 "유형"을 알아냅니다. 장치 파일 이름을 알아 내면 어려운 부분이라고 생각합니다. 디스크 드라이브 이름 지정 규칙을 알아야이를 파악할 수 있습니다.

최신 아치 리눅스 박스에서 :

133 % ls /dev/sd??
/dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sdb1  /dev/sdb2

그러나 성숙한 (2.6.20.9) 슬랙웨어 상자에서는 작동하지 않습니다.

1 % ls /dev/sd??
zsh: no matches found: /dev/sd??
2 % ls /dev/hd??
/dev/hda1  /dev/hda2

것을 사전에 알고없이 /dev/sd*또는 /dev/hd*하드 디스크 장치 파일, 당신은 사용할 필요가 lspci또는 lsusb장치 파일 이름을 알아 내기 위해 또는 뭔가를. USB 장치는 종종 /var/log/messagesudev에 어떤 ​​장치 파일이 할당되었는지 파악할 수 있도록 정보를 남겨 둡니다 .


1
fdisk -l언급 한 다른 답변처럼 사용하는 것은 어떻습니까? (또한 해당 답변에 대한 최신 의견을 참조하십시오.)
its_me

1

Ubuntu 14에서는 Disks 앱을 사용할 수도 있습니다.

여기에 이미지 설명을 입력하십시오

먼저 왼쪽 패널에서 디스크를 클릭 한 다음 오른쪽 패널에서 파티션을 클릭하십시오. 오른쪽 패널 하단에는 포맷, 현재 장착 상태 등이 표시됩니다.이 GUI를 사용하여 파티션을 생성 / 삭제 / 포맷 할 수도 있습니다.


두 개의 4GB가 동일한 이유는 무엇입니까? 그리고 OQ는 올바른 장치를 찾는 데 어려움을 겪고 있습니다. 그런 다음 형식도?
rastafile

1

어떻게해야할까요? 우리는 항상 그렇게하는 방법을 많이 가지고 있지만 항상 그렇듯이 장치에 사용 된 파일 시스템이 어느 정도 방해가 될지 모르지만 "자동"옵션을 사용하여 약간의 도움을 줄 수 있습니다.

mount -t auto /dev/sdb1 /media/pendrv

/ media / pendrv 에서 사용할 준비가 된 다음 장치를 마운트 한 후 다음을 사용하십시오.

umount /media/pendrv

... 장치를 해제합니다.


0

ThoerX 포럼 fdisk -l로 장치를 확인하십시오.

Partition the device as following :-
fdisk /dev/sda
d - Delete old partitions
n - New partition
select partition number
select start block
select end block
v - verify the new partition
w - write through

now fdisk - l should show /dev/sda1 with proper filesystem type (say ext4)
mount -t ext4 /dev/sda1 /myMountPoint

0

"마운트"맨 마운트는 파일 시스템 이있는 논리적 블록 장치 입니다.

"장치"는 제품을 의미 할 수도 있습니다 (SSD는 드라이브, HDD는 디스크 드라이브, DVD는 디스크, ODD는 디스크 드라이브입니다).

종종 정확히 어느 것이 중요하지 않습니다. 그러나 마운트 (또는 포맷팅 또는 파티셔닝)는 논리적으로 중요하기 때문에 중요합니다.

보시다시피 sda는 sda1, 2, 3 옆에 있습니다 ... 또한 sdb, sdc는 각각 파티션이 있습니다. 따라서 두 가지 방법으로 잘못 갈 수 있습니다.

의 경우 mount /dev/sdb1 /media/disk/sata 디스크 "b"에서 파티션 1을 선택합니다. 해당 sdb1이 USB 펜 파티션 인 경우 탑재 지점 이름이 크게 말하지 않습니다.

RAM을 마운트하여 램 디스크 또는 파일 ( "루프 장치")을 만들 수도 있습니다. 또는 sysfs와 같은 모든 가상 "장치"는 / sys 디렉토리 (마운트 포인트)를 채 웁니다.

마운트 아이디어와 명령 마운트는 세 가지 주요 요소가있는 개념 (VFS 등)에 의존합니다.

  1. 분배 / 차단 장치는 : 비교 fdisk -l, lsblkcat /proc/partitions. 까다 롭지 만 80 %는 다른 관점입니다.
  2. 파일 시스템 : 포맷 하면 20GB 파티션이 18GB의 여유 공간이있는 빈 디렉토리로 바뀌어 파일을 채 웁니다. man mkfsman mkfs.ext2(mkfs.FSTYPE)을 참조하십시오 .
  3. 마운트 포인트 : 이것은 단지 "후크"이며, 새로운 분기가 최상위 디렉토리 "/"에 연결되는 (빈) 디렉토리입니다. 으로 바인딩오버레이 당신은 복잡한 FS 트리를 만들 수 있습니다. 그러나 mkdir xyz기술적으로는 특별 합니다.

이 모든 마운트는 한 번 / etc / fstab의 sysadmin에 의해 중앙에서 구성되었습니다. 오늘날 대용량 스토리지의 핫 플러그로 인해 상황이 약간 복잡해집니다.

USB 펜의 경우 / dev / sdb와 그 파티션을 순식간에 팝업하는 커널 모듈입니다.

핫 플러깅의 모든 추가 자동화는 그대로 단순하게 udev에 의해 조정되어야하며 때로는 추가 도구에 의해 완성되어야합니다. Udev는 스토리지뿐만 아니라 모든 장치를 처리 할 수 ​​있습니다.

우리는 새로운 아이콘 (또는 괜찮은 이름을 가진 "장치")이 자동으로 팝업되는 편리함과 (가상) 파일 시스템을 가진 커널이 부분적으로 시스템을 준비하는 방식 사이에 갇히게됩니다. 그러나 RAID 및 암호화 및 모든 다른 스토리지 "장치"를 사용하면 Linux는 일부 계층을 추가해야합니다.

결국, 당신은 당신의 손끝에서 그 내용을 원합니다.

일반적으로 올바른 ... DEVICE;) 만 식별하면됩니다. ls /dev/sd*어떤 문자, 숫자, 장치를 식별하는지 알 수 있습니다 .

그런 다음

mkdir mydev
mount /dev/DEVICE mydev

( -t type일부 제외 할 수 있습니다 )


이것은 읽기 쉽고 체계적입니다. "마운트"는 매우 중요한 개념입니다. 이 모든 답변들은 특히 데뷔 자들 에게 "문제"를 보여준다 . "mount"는 unix 명령입니다. 다차원. 더 복잡한 fork () 만.
rastafile

위키 백과 리눅스 비판 : 한 번에, 리눅스 시스템은 플로피 디스크 나 CD-ROM과 같은 이동식 미디어를 수동으로 마운트해야 액세스 할 수있었습니다. udev의 개발로 거의 모든 배포판에서 미디어 마운트가 자동으로 수행됩니다.
rastafile
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.