다양한 디렉토리를 별도의 파티션에 마운트 할 때의 장단점은 무엇입니까?


41

"something else"옵션으로 Ubuntu를 설치하는 동안 아래 이미지에서 볼 수 있듯이 별도의 파티션에 마운트 할 수있는 폴더가 많이 있다는 것을 알았습니다.

많은 폴더를 별도의 파티션에 마운트 할 수 있습니다

그렇다면 이러한 폴더 (또는 디렉토리)를 별도의 파티션에 마운트 할 때의 장단점은 무엇입니까?

특히 디렉토리는

  1. /boot
  2. /home
  3. /tmp
  4. /usr
  5. /var
  6. /srv
  7. /opt
  8. /usr/local


6
@CharlesGreen이 질문은 이러한 디렉토리의 사용법을 설명합니다. 별도의 파티션에 마운트 할 때의 장단점을 알고 싶습니다. 따라서 이러한 질문은 동일하지 않습니다.
등록 된 사용자

답변:


54

옛날 옛적에...

... 사람들이 Linux를 설치하고 특정 요구 사항에 맞게 수동으로 Linux를 구성했던 시간이있었습니다. 이 중 일부는 오늘날에도 서버에 적용됩니다. 당신이 보는 선택 gparted은 일반적인 데스크탑 사용자, 우분투 데스크탑의 대상 고객과 비교하여 매우 다른 요구를 가진 사람들에게 인기있는 것입니다.

한 번에 하나씩 가져 갑시다. 내가 잘 모르는 것을 건너 뛸 것입니다.

  1. /boot리눅스 파일 시스템이 취약하고 하드 드라이브가 작은 시간이있었습니다. 사람들은 하드 드라이브가 가득 차거나 손상되어 Ubuntu가 부팅되지 않을까 두려워했습니다. 커널을 별도의 파티션에 보관하면 다른 일이 잘못되었을 때 시스템을 부팅 할 수있었습니다. 그 당시 Linux 사용자는 자신의 커널을 컴파일하고 이전 커널을 정리했습니다. 최근 Ubuntu 16.04 LTS 와 마찬가지로 Software Updater 앱은 최신 커널 업데이트를 설치했지만 이전 커널은 제거하지 않았습니다. 결과적으로, /boot오래된 파티션으로 채워진 작은 파티션으로 주기적으로 청소하지 않으면 시스템 부팅이 중단되었습니다. 별도의 /boot파티션이 있고 정기적으로 청소하지 않은 경우 어떻게되는지 확인하십시오 . / boot에서 더 많은 공간을 확보하려면 어떻게해야합니까? Ubuntu 18.04 LTS를 사용 하면 Software Updater 앱이 시스템을 최신 상태로 유지할뿐만 아니라 이전 커널도 제거합니다.
  2. 반면, /작업중인 비밀 소프트웨어를 보호하기 위해 파티션 을 암호화하려면 별도의 (암호화되지 않은) /boot파티션 이 필요 합니다. 그렇지 않으면 시스템이 부팅되지 않습니다. 마찬가지로 RAID 드라이브가있는 경우 /boot비 RAID 파티션을 유지 하는 것이 유용 할 수 있습니다. 많은 사람들은 별도의 /boot파티션을 갖는 것이 이러한 이유와 다른 이유로 매우 좋은 생각이라고 생각합니다.
  3. /home별도의 파티션에 집을 유지하는 것은 여전히 ​​의미가 있습니다. 이 폴더 / 파티션에는 개인 파일이 있으며 별도의 파티션에 보관하면 /파일을 그대로 유지하면서 Ubuntu 를 포맷 하고 다시 설치할 수 있습니다. 최신 버전의 Ubuntu 설치 소프트웨어에는 DVD / USB에서 업데이트를 선택할 수 있습니다. 이 옵션 /home은 별도의 파티션에 있지 않아도 그대로 유지 됩니다. /파티션이있는 기본 드라이브의 공간이 부족한 경우 . 새 드라이브를 추가하고 새 드라이브에서 단일 /home파티션을 만들 수 있습니다.
  4. /tmp임시 파일이있는 곳입니다. 대용량 임시 파일을 생성하는 서버를 실행하는 경우 모든 디스크 공간을 채우고 서버를 정지시킬 수 있습니다. 별도의 파티션에 보관하면 해당 파티션 만 가득 차고 큰 임시 파일을 생성하는 프로세스는 중지되지만 나머지 시스템은 중지되지 않습니다. /tmp파티션 아래의 임시 폴더보다 채워진 파티션 을 처리하는 것이 더 쉽다고 들었습니다 /.
  5. /usr/, /opt//usr/local프로그램 및 앱이 서로 다른 조건에서 유지되는 모든 장소입니다. Linux 용 소프트웨어를 개발하는 경우 별도의 파티션으로 유지하는 것이 좋습니다. 따라서 Ubuntu를 다시 설치해도 작성했거나 작업중인 프로그램은 삭제되지 않습니다.
  6. 소스 (자체 또는 다른 곳)에서 프로그램을 설치하고 같은 파티션에 동일한 컴퓨터에 설치된 다른 배포판 (예 : Red Hat)에서 프로그램을 사용하려는 경우 별도의 파티션을 유지 /opt/하고 /usr/local별도의 파티션에 보관하는 것도 좋습니다. 그런 다음 배포 본인 Ubuntu와 Red Hat은 모두 /opt/usr/local파티션을 공유 할 수 있습니다 . (르 마노 감사합니다!)
  7. /srv그리고 /var당신이 서버를 실행하거나 웹 페이지를 개발하는 경우 별도의 파티션으로 특히 유용하다. 일반 데스크탑 사용자의 경우이 폴더는 많은 공간을 차지하지 않으며 사용자에게 중요한 것을 보유하지 않습니다. 웹 개발자에게지는 /var/www것은 그녀의 직업을 잃는 것을 의미 할 수 있습니다.

확실히, 이것들은 파티션으로 마운트 할 수있는 유일한 디렉토리는 아닙니다. 리눅스에서는 파티션을 어느 폴더로나 마운트 할 수 있습니다. 파티션은 종종 /mnt/및의 하위 디렉토리로 마운트됩니다 /media.

도움이 되었기를 바랍니다



1
@Rmano에게 감사드립니다. 전에 자세한 답변을 보았습니다. 나는 당신의 두 번째 대답에서 빌리고 내 것을 편집 할 것입니다.
user68186

2
괜찮습니다. (완전히 다시 설치해도 살아남을 수는 있지만 --- 최신 설치 프로그램은 저장할 수는 /home없지만 저장할 수는 없습니다 /usr/local. BTW, "손으로 설치하고 조정하십시오"는 아치 리눅스의 명예입니다 ... 그래서 여전히 (많은 )
Rmano

2
/ boot를 별도의 파티션으로 사용하는 역사적인 이유는 하드 디스크가 BIOS가 처리 할 수있는 것보다 더 큰 날이기 때문에 커널이 디스크의 액세스 할 수없는 부분에 있으면로드 할 수 없었습니다. 디스크에서 / boot partiton을 먼저두면 BIOS가 항상 커널에 액세스하여 Linux가 부팅 될 수 있습니다.
Thorbjørn Ravn Andersen

1
또한 더 많은 공간을 확보하기 위해 디스크를 추가 할 수 있지만 Unix에서는 드라이브 문자를 할당하는 대신 디스크를 마운트해야합니다. 예를 들어 디스크가 가득 차면 / home을 유지하기 위해 새 디스크를 구입했으며 현재 내용이 그곳으로 이동했습니다.
Thorbjørn Ravn Andersen

15

다중 파티션을 갖는 일반적인 장점 :

  1. 다른 디스크 / LUN을 사용하고 성능을 향상시킬 수 있습니다. 저장소에 대한 트랜잭션 로그와 다른 파일에 대한 데이터 파일을 가질 수 있으므로 데이터베이스 성능이 향상 될 수 있습니다. 디스크 I / O 집약적 웹 응용 프로그램과 유사합니다.
  2. 다른 마운트 옵션을 사용할 수 있습니다 (보안을 강화하거나보다 세밀한 방식으로 성능 또는 안정성에 영향을 미침)
  3. 다른 파일 시스템을 가질 수 있습니다
  4. 공간을 별도로 관리합니다. 따라서 다른 응용 프로그램에 영향을 미치지 않는 공간을 채우는 불쾌한 응용 프로그램을 가질 수 있습니다.
  5. 한 파티션의 조각화는 다른 파티션과 독립적입니다.
  6. 해당 파일 시스템의 성능을 독립적으로 스냅 샷, 마운트, 마운트 해제, 포맷, 조각 모음, 모니터링 할 수 있습니다.
  7. 특정 볼륨에서 암호화 할 수 있습니다.
  8. 필요에 따라 볼륨을 마운트 할 수 있습니다.

다중 파티션을 갖는 일반적인 단점 :

  1. 관리 오버 헤드가 증가합니다.
  2. 더 많은 디스크 공간을 낭비 할 가능성이 높아집니다.
  3. 디스크가 가득 차면 더 많은 사고가 발생합니다.
  4. 다른 볼륨에서 실행되는 응용 프로그램의 일관된 스냅 샷을 만드는 것이 더 어렵습니다.
  5. 약간 더 많은 리소스를 사용합니다.
  6. 볼륨 유형 (MS-DOS 레이블, LVM, btrfs ...)에 따라 다른 볼륨을 축소하여 볼륨에서 공간을 쉽게 할당하지 못할 수 있습니다. 특히 온라인.

시스템을 분할하는 또 다른 방법은 /에 LVM, btrfs 또는 zfs를 사용하는 것입니다. /에 대한 최소 공간 만 할당하고 필요할 때 논리 볼륨을 만들거나 /를 확장하십시오. 따라서 나중에 볼륨을 분할 할 수 있으며 유지 관리 비용이 절감됩니다.

이제 구체적인 것들 :

  • / boot는 별도의 파티션 인 것이 좋습니다. 파일 시스템은 부트 로더 (일반적으로 GRUB)에서 지원되는 파일 시스템이어야합니다.
  • EFI / UEFI를 사용하는 경우 EFI 시스템 파티션이 있어야합니다.
  • / home은 OS 및 응용 프로그램에서 사용자 항목을 분리하는 데 좋습니다.
  • / tmp는 noexec, nodev, nosuid로 마운트 될 수 있습니다. tmpfs와 같이 fs로 매핑 된 메모리 일 수 있습니다.
  • / usr은 읽기 전용으로 마운트하고 업데이트를 위해 rw 만 마운트 할 수 있으며 NFS 공유처럼 원격 일 수 있습니다.
  • / srv / opt는 응용 프로그램 및 응용 프로그램 데이터를 저장합니다. I / O 집약적 인 응용 프로그램이있는 경우 더 나은 디스크 하위 시스템 (예 : SSD)을 사용할 수 있습니다
  • / usr / local은 현재 컴퓨터에 로컬로 설치된 응용 프로그램에서 사용하는 기본값입니다. 예를 들어 NFS에 다른 모든 것이 있고 로컬 디스크가 있습니다 ...

완벽한 해결책은 없습니다. 새 파티션을 만들어야하는 분명한 이유가 없다면 그렇게하지 마십시오. / 이외의 파티션을 만들어야 할 유일한 파티션은 / boot입니다.

데스크탑 / 노트북의 경우 / home을 사용하면 데이터와 상관없이 OS를 다시 설치할 수 있습니다.


천만에요. 나는 /boot일반 데스크탑 사용자를 위해 별도의 파티션 을 갖는 것이 좋다는 것에 동의하지 않습니다 . 이전 커널은 자동으로 정리되지 않으며 새로운 커널이 추가됩니다. 그런 다음 발생합니다!
user68186

1
가득 차면 사용자는 최신 커널을 설치할 수 없으며 업데이트가 실패합니다. 그러나 시스템은 작동합니다.
Mircea Vutcovici

1
반면 GRUB에서 지원하지 않는 파일 시스템을 사용하거나 / 파티션을 암호화하는 경우 / boot 파티션을 사용해야합니다.
Mircea Vutcovici

두 지점에서 모두 동의했습니다.
user68186

1
/ boot 파티션의 필수 요구 사항을 제거하기 위해 답변을 편집했습니다.
Mircea Vutcovici

2

데스크탑?

차이 없음.

서버?

공간 관리 및 백업.

시스템에 많은 사용자가있는 경우 / home /에 추가 파티션을 만들 수 있으면 사용자는 해당 공간을 비우지 않으며 루트 (/)는 영향을받지 않습니다.

해당 폴더의 다른 물리 디스크에 NFS, SMB 또는 파티션을 마운트 할 수도 있습니다. 예를 들면 다음과 같습니다.

/ dev / sda1 / boot (1GB)

/ dev / sda2 / (60GB)

nfs : // IP / 폴더 / 홈 (X TB)

/ dev / sdb1 / var (/ var / www 또는 / var / ftp의 경우 1TB)

노트북

/ m-sata에 (빠른)

hdd의 / var / home / opt / tmp (느리게)


1
마지막 요점을 자세히 설명해 주시겠습니까? 또 다른 포스트는 추가 오류 지점을 생성하여 별도의 디스크에 해당 파티션을 두지 말 것을 권고했습니다. 이제 두 드라이브 중 하나라도 실패하면 작동하는 시스템이 없습니다. HDD 파티션이 마운트되기를 기다리고 있기 때문에 부팅 시간이 느려질 것입니다.
Khashir

2

przemo의 답변 인 imo는 실제 포인트에 가장 근접합니다. 추가적인 실제 고려 사항은 다음과 같습니다.

엔터프라이즈 환경은 일반적으로 at /, / home, / opt, / var, / boot 및 / opt 아래의 추가 파일 시스템 (응용 프로그램 또는 응용 프로그램 팀당 1 개)에 대해 별도의 파티션을 사용합니다. 이는 주로 누군가의 홈 디렉토리가 방대하거나 (/ home), 로그를 제어 할 수없는 (/ var) 또는 많은 공간을 소비하는 앱 (/ opt, / opt // 등)으로 인해 시스템 공간 부족을 피하기위한 것입니다. , 및 / boot를 사용하여 다른 파티션을 LVM에 구축 할 수 있으며 어떤 이유로 기본 시스템 파티션이 손상 될 경우 복구 쉘을 얻을 수 있습니다.

내 자신의 개인 비 서버 사용의 경우 별도의 /, / boot 및 / home 파티션을 유지하여 여러 Linux / UNIX OS를 이중 부팅하고 동일한 / home 파티션을 사용할 수 있습니다.

Oracle Virtualbox, VMWare Player / Workstation / Fusion 등에서 개인적 용도로 VM을 구축하는 경우 최소한 VirtualBox가 제공하는 멋진 폴더 공유 기능으로 인해 마운트 지점이 다른 다중 파티션을 갖는 실질적인 이유는 실제로 없습니다 그리고 VMWare 플레이어 / 워크 스테이션 / 퓨전. 내 "엔터프라이즈 환경"단락에 제공된 복구 쉘 이유로 단일 예외는 / boot 일 수 있습니다.


2

업데이트 또는 메이저 버전 업그레이드 중에 문제가 발생하면 다른 파티션에 / home을 넣으면 CD로 부팅 한 다음 데이터를 잃지 않고 운영 체제를 완전히 지우고 다시 설치할 수 있습니다. 또한 다양한 Linux 배포판으로 다중 부팅을 수행 할 수 있으며, 일부 사람들은이를 나란히 평가하려고합니다.


별도의 / home은 내 비누 상자 중 하나이지만, 최근에는 oneiric 노트북에서 테스트하기 위해 다른 파티션에 saucy를 설치했을 때 화상을 입었고 공유 / home에서 많은 구성 파일을 엉망으로 만들었습니다. 나는 그것에 재부팅했다.
Joe

0

기존 답변 외에도 다른 파티션에서 혜택을받는 비표준 / 공통 호환성 및 성능 사용 사례가있을 수 있습니다.

Windows와 같은 다른 운영 체제와 데이터를 공유하고 Linux 및 지원되는 파일 시스템을 사용해야합니다.

여러 가지 작은 파일을위한 EXT4 파티션과 작은 파일을위한 EXT4 파티션 (가상 머신 등)과 같은 유형의 파일 시스템에 대해 서로 다른 튜닝을 할 수있는 전문적인 사용 사례가있을 수 있습니다. 두 사용 사례 모두에 대해 스토리지 및 성능을 최적화합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.