/dev/sdb1
다음을 포함하는 하나의 파티션이 있는 하드 드라이브가 있다고 가정해 보겠습니다 .
% sudo mount /dev/sdb1 /mnt
% cd /mnt
% ls
osA/ osB/
% ls *
osA:
bin boot/ dev/ etc/ home/ lib lib64 lost+found/ mnt/
opt/ proc/ root/ run/ sbin srv/ sys/ tmp/ usr/ var/
osB:
bin boot/ dev/ etc/ home/ lib lib64 lost+found/ mnt/
opt/ proc/ root/ run/ sbin srv/ sys/ tmp/ usr/ var/
osA
부팅하는 동안 (아마도) 디렉토리를 어떻게든 마운트하고 필요할 경우 나중에 해당 디렉토리로 변경할 수 있기를 바랍니다 . 가능하다면 fs에서 이 작업을 수행하고 싶습니다. 이것이 가능한가?/dev/sdb1
/
/etc/fstab
osB
ext4
그것을 작성하는 또 다른 방법:
/
여러 "루트 파일 시스템 디렉터리"를 호스팅하는 파티션과 부팅 시 두 디렉터리 중 하나를 마운트 할 수 있는 기능을 원합니다 .
나는 항상 전체 파티션을 /
.하위 디렉토리파티션에.
내 현재 /etc/fstab
항목(전체 파티션은 전용 /
):
UUID=0a7baeae-857d-11eb-8dcd-0242ac130003 / ext4 rw,relatime 0 1
저는 Archlinux를 실행하고 있습니다.
동기 부여:
- 가끔 패키지 관리자 문제로 인해 시스템을 다시 설치해야 할 때도 있습니다. 나는 이 접근 방식이 모든 것을 처음부터 설정하는 것보다 더 빠르며 이전 설정으로 돌아갈 수 있다고 생각했습니다.
- 이것을 배포판과 패키지 관리자를 시험해 보고
/
설치된 것을 전환하는 가능한 방법이라고 생각하십시오. - 가지고 있는 것만으로도하나
/dev/sdb
OS와 데이터 파티션의 크기를 조정할 필요가 없습니다. 데이터를 "osA" 및 "osB"와 나란히 "data" 폴더로 저장하면 됩니다.
편집 1:
제가 질문을 좀 더 명확하게 질문할 수 있는 방법에 대한 제안 사항이 있으면 알려주시기 바랍니다.
이 질문들은 어느 정도 관련이 있는 것 같습니다. 첫 번째 질문은 관련 없는 내용을 파헤쳐 보는 것처럼 보이지만 두 번째 질문은 답변을 얻지 못합니다. 세 번째 질문을 확인하세요.39423 374806 206493 613179
나생각하다/
이미 어딘가에 설치된 후에 마운트를 바인딩할 수 있는지 확인하고 싶었습니다 (이전에는 /etc/fstab
이 작업을 수행한 적이 없으며 /dev/sdb1
작동할지 모르겠습니다. 이를 시도하고 결과를 게시할 수 있습니다. 통찰력을 환영합니다).
편집 2:
마운트를 바인딩하려면 먼저 마운트 지점이 필요했고 /
마운트 지점 자체 없이는 마운트 지점을 가질 수 없다는 것을 깨달았습니다.
답변1
내 생각엔 당신이 그것을 무시한 것 같아요첫 번째 질문에 대한 답변너무 빨라. 나는 거의 같은 대답을 쓰려고했습니다. 따라서 이를 수행하는 방법을 정확히 논의하기 위해 이 답변을 따르겠습니다.
이 작업을 수행하기 위해 왜 initramfs를 사용해야 합니까?
대부분의 마운트 지점은 에 정의되어 있습니다 /etc/fstab
. 그러나 이는 [거의 항상] 루트 파일 시스템( /
)에 저장됩니다. 루트에 저장된 파일에서는 어느 파티션이 루트인지 구성할 수 없습니다. 어떤 파티션이 루트로 마운트되는지 구성하려면 뭔가가 필요합니다앞으로 /etc/fstab
읽을 수 있습니다. initramfs의 작업은 루트( /
)를 마운트한 다음 이를 chroot하는 것입니다.
먼저 루트 파일 시스템이고 선택한 루트 파일 시스템이 다른 곳에 마운트된 다음 해당 파일 시스템에 chroot를 호출하므로 시스템에 다른 파일 시스템이 마운트되어 있다는 것을 이해하는 것이 중요합니다.
다른 답변에서 알 수 있듯이 initramfs에는 하위 디렉터리로 루트를 지정하는 구성 옵션이 [보통] 없습니다. 그러나 /init
스크립트가 실행되는 위치와 chroot되는 위치를 수정하는 것은 매우 간단합니다.