루트 파티션과 홈 파티션이 서로 다른 파일 시스템을 갖고 별도의 물리적 장치에 위치 할 수 있습니까?


10

SATA HDD에 존재하는 별도의 파티션과 Intel SSD에 존재하는 다른 btrfs 파티션의 홈 디렉토리에 ext3 파일 시스템으로 루트를 포맷했다고 상상해보십시오.

인터넷에서 파일을 다운로드하여 임시로 /tmp(루트 파일 시스템에) 저장 한 다음 홈 디렉토리 (두 번째 파티션)로 이동하기로 결정했습니다.

나는 그런 간단한 mv명령이 작동 하도록 백그라운드에서 일어나는 고통스러운 과정을 느낄 수 있습니다 .

먼저 루트와 홈이 다른 파일 시스템을 가질 수 있습니까? 둘째, 앞의 질문에 대한 답을 가정하는 것은이었다 "예", 어떻게 OS는 모든 관리 않습니다에서 전환 ext3btrfs다른 디스크 타입 (HDD 및 SSD)에 대해 서로 다른 장치 드라이버를 사용하여 다음?


3
레이어로 완성되었습니다. 파일 시스템 계층은 블록 장치 계층 위에 구축됩니다. 파일 시스템 계층에서 적합한 파일 시스템을 사용할 수 있습니다. 해당 블록 장치 계층에서 적절한 블록 장치를 사용할 수 있습니다. 각 마운트 지점에는 고유 한 파일 시스템과 장치가있을 수 있습니다.
톱밥

@sawdust, 그것은 당신이 지적한 매우 흥미로운 것입니다, 파일 시스템 계층과 블록 장치 계층. 그들은 어떻게 관련되어 있습니까? 모든 독서가 도움이 될 것입니다.
Karim Manaouil 2016 년

파일 시스템에 대해 많이 알지 못하지만 프로세스가 외부 FAT32 드라이브로 파일을 복사하는 것과 다르지 않다고 가정합니다.
Blaine


ext4로 업그레이드하기가 간단 할 때 2017 년에 왜 여전히 ext3을 사용합니까?
David Foerster 2016 년

답변:


25

대답은 예입니다. OS가 지원할 수있는 모든 파일 시스템을 실행하여 모든 장치에 디렉토리를 둘 수 있습니다.

그래서 당신은 할 수 있습니다 / /var /home /opt, 심지어 /home/afr0ck다른 장치, 다른 파티션, 다른 파일 시스템.

당신뿐만 아니라 일반적입니다. 예를 들어, 항상 유지하는 것이 좋습니다 /var/home다른 파티션에 /이 가장 가능성이 실수로 디스크 공간을 소비 할만큼 - 그들은 채울 경우, 너무 많은 시스템에 영향을주지 않습니다. 루트와 동일한 파티션에 있으면 시스템이 중지 될 수 있습니다.

그리고 속도상의 이유로 다른 장치에서 다른 디렉토리를 실행하고 싶을 수도 있습니다. 다른 목적으로 다른 파일 시스템을 사용하십시오. 예를 들어, ext4는 OS 파일에 큰 변화가 없기 때문에 원하는 것이지만 / home에 btrfs를 원하면 백업 스냅 샷을 유지할 수 있습니다. 이는 각 사용자가 특정 사용 사례에 대해 결정할 수있는 모든 결정입니다.

OS의 사용자 공간 부분은 다른 장치 및 파일 시스템 유형을 이해할 필요가 없습니다. 커널이 파일을 이동하도록 요청하면 커널은 거기에서 모든 것을 오케스트레이션합니다. 따라서 mv명령 (예 : 파일 시스템 및 장치 유형에 관계없이)이 있습니다. 커널은 다른 파티션을 읽고 쓰는 데 필요한 드라이버를 호출합니다.


7
mv(1)먼저 rename(2)파일을 시도 한다는 것을 지적하는 데 유용 합니다. 그런 다음 복사 및 삭제로 돌아갑니다. 따라서 이름을 바꾸려는 mv것은 FS에 구애받지 않는 방식으로 가능한지 알아내는 방법입니다. ( rename(2)동일한 파일 시스템 드라이버를 사용하는지 여부에 관계없이 다른 장치 간을 이동할 때 항상 실패합니다.)
Peter Cordes

1
@ PeterCordes 허, 나는 이름 바꾸기가 무엇인지 몰랐다. 나는 항상 mv를 사용하여 이름을 바꿨습니다.

5
@stanri : 명령을 mvfork / exec하지 않고 시스템 호출을 rename(1)시도합니다 rename(2). 표준 rename쉘 명령 이 없습니다 . 일부 시스템에서는 util-linux의 패턴 대체 다중 파일 이름 바꾸기 명령입니다. 쉘 명령에 대해 이야기하지 않고 mv내부적으로 어떻게 작동 하는지에 대해서만 이야기했습니다 .
Peter Cordes 2016 년

/ usr조차도 다른 파티션에 상주 할 수 있기 때문에, 일부 필수 구성 요소가 / bin / lib 및 / sbin에있는 이유는 모든 설치 관리자 가이를 지원 하는지 여부 입니다.
rackandboneman 2016 년

7

예. 별도의 파일 시스템 (마운트 포인트)은 다른 파일 시스템 유형일 수 있습니다.  /proc항상 procfs파일 시스템 /sys이며 항상입니다 sysfs. 일시적인 파일 시스템 (가끔 포함 /tmp)이 종종 tmpfs있으며 작업 그룹 설정에서 사용자의 홈 디렉토리 (및 작업 제품 디렉토리)가 nfs다른 원격 (네트워크 / 공유) 파일 시스템 유형 인 것이 일반적입니다 .

OS에 대한 특별한 관리는 없습니다. 사용자 수준에서 모든 파일 시스템은 ls목록이 모든 디렉토리에서 거의 동일하게 보일 것이라는 점에서 비슷 합니다. 그 이상으로 파일 시스템은 상호 작용하지 않습니다. 동일한 물리 디스크의 동일한 파일 시스템 유형의 두 파일 시스템 (파티션) 사이에서도 링크가 없습니다 1 . 예를 들어 한 파일 시스템 (마운트 지점)에서 다른 파일 시스템으로 파일을 이동하려면 항상 사본을 만들고 원본을 삭제해야합니다. 다른 디스크의 파티션인지는 중요하지 않습니다. 그중 하나가 HDD이고 하나가 SSD인지는 중요하지 않습니다. 하나 ext3와 하나는 중요하지 않습니다btrfs. 하나는 내부 (컴퓨터 케이스 내부)이고 하나는 외부 (외부에서 몇 인치, 케이블로 연결됨) 또는 원격 (네트워크를 통해 액세스)인지는 중요하지 않습니다.

네트워크에 관해서는 약간 비슷합니다 ssh. 키보드에서 읽고 입력 한 문자를 네트워크로 보냅니다. 동시에 네트워크에서 읽고 결과를 화면에 표시합니다.

또는 전화 통화 중이고 다른 전화 사용자와 회의실에있는 다른 사람 간의 대화를 중재한다고 가정 해보십시오. 별거 아니야.
________
1 기호 링크는 제외하지만 파일 시스템 경계를 넘을 수 있습니다.


1
나는 당신의 대답에 크게 동의하지만 / tmp가 tmpfs (일부 배포판에서는 그렇게 설정되었을 수도 있음) 인 것이 일반적이지 않습니다. 일반적으로 루트 파티션에서 떨어져 부팅시 정리됩니다. 우분투 tand Redhat 타입 배포판은 / dev / shm을 tmpfs로 사용합니다.
davidgo

나는 혼란 스러웠다. 내 답변을 업데이트했습니다.
G-Man, 'Reinstate

1
@ davidgo : /tmptmpfs에서 어떤 Linux 배포판이 기본적으로 설정되지 않습니까? 또한 /var/tmp부팅 할 때 항상 정리할 수는 없지만 항상 물건을 넣을 수 있기 때문에 거의 표준 관행이라고 생각했습니다 . 나는 크로스 디스트로 기본에 대한 전문가가 아니라 데비안 / 우분투와 아치입니다. 그와 함께 RedHat을 사용하면 설치된 Linux 시스템의 상당 부분을 차지하지만 전체 배포판의 큰 부분은 아닙니다.
Peter Cordes

(내장 시스템 무시) Centos와 Ubuntu 만 정기적으로 사용합니다. 둘 다 / tmp에 디스크를 사용합니다. -Debian, Redhat 및 Mint가 모두 동일한 규칙을 따릅니다. 내 안드로이드 기기에는 / tmp가 없습니다
davidgo

2
@PeterCordes tmpfsLinux 의 부상은 최근 5 ~ 7 년 정도에 불과합니다. 예를 들어 Fedora는 Wiki ~ 2012의 변경 사항에 대해 논의했으며 Debian Wheezy에서 소개 된 것으로 생각합니다.
Bob
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.