/usr을 Linux의 다른 장치로 이동

/usr을 Linux의 다른 장치로 이동

OpenSuse Linux를 15.3으로 업그레이드했는데 "/" 루트 디렉터리에 남은 디스크 공간이 너무 적어서 /usr을 새 장치로 이동하기로 결정했습니다. /usr의 모든 파일을 새 장치에 복사하고 /etc/fstab을 편집하여 fstab 및 bootet의 파일을 업데이트했습니다.

그런 다음 시스템은 /usr에 대한 새 장치를 사용합니다.

/dev/sda3 .... .... 22% /usr

모두 제일 좋다. 한 가지 작은 결함이 있습니다. 루트/의 채우기 수준이 이전과 동일합니다. ("이전" /usr이 여전히 장치 아래에 있었기 때문입니다(새 /usr을 마운트하는 것은 이전 /usr을 위장하는 것일 뿐입니다). 그래서 저는 이전 /usr을 제거하기 위해 단일 사용자 모드로 부팅했고 여러 프로세스도 마찬가지였습니다. 단일 사용자 모드에서 /usr을 실행 중입니다. 사용자 모드가 작동했고(주의를 기울이지 않았습니다) 다음을 사용하여 제거했습니다.

ummount -l /usr (lazy)
Moved it to prepare it for later deletion (mv /usr /xusr)

따라서 /etc/fstab의 항목은 /dev/sda3에 /usr을 마운트하므로 /xusr을 삭제할 수 있습니다.

그러나 재부팅 후에는 아무것도 작동하지 않습니다. Linux는 몇 가지 명령(가장 중요)만으로 나를 복구 모드로 전환하고 아무것도 할 수 없습니다. 더 이상 fstab도 없고, 루트도 없고, 장치도 없습니다. 이것은 단지 원시 코어일 뿐이라고 생각합니다.

몇 가지 생각과 실험 끝에 여러 장치를 /mnt에 마운트했고(설치는 제대로 작동했습니다) 결국 원래 루트 장치를 찾았고 xusr을 부팅 시 커널이 찾을 수 있도록 이전 이름인 /usr로 다시 옮겼습니다.

내 질문: /usr을 새 위치로 어떻게 이동합니까? (모든 중요한 시스템 명령이 이 영역에 있고 커널이 /usr을 먼저 마운트한 다음 fstab을 처리할 수 있기 때문에 이것이 불가능할 수도 있다는 것을 발견했습니다.)

가능합니까?

답변1

첫째,큰 경고: 많은 최신 배포판,OpenSuSE 포함, 이제 "병합된 /usr" 레이아웃으로 마이그레이션하면 더 이상 별도의 파일 시스템을 생성할 수 없습니다 /usr. 그렇게 하려고 하면 경험했던 방식으로 실패하게 됩니다.

기본적으로 배포판은 /usr/bin및 에 설치된 모든 패키지 /usr/sbin와 이전 패키지를 빌드 /bin하고 각각 및 에 대한 심볼릭 링크 /sbin로 종료됩니다 . 결국에도 마찬가지다./usr/bin/usr/sbin/lib

어제 출시된 OpenSuSE 15.3(!)을 사용하고 있으므로 위에 링크된 OpenSuse의 UsrMerge 발표보다 확실히 최신 버전입니다. 이는 분할 계획을 의미할 수 있습니다./usr 그것은 단순히 작동하지 않습니다.

(OpenSuSE 15.3 새 기능 목록의 해당 섹션에 대한 링크를 추가하고 싶었지만 현재 OpenSuSE 서버가 매우 바쁜 것 같습니다. 이 페이지를 열 수 없는 것 같습니다.)


루트 파일 시스템은 어떤 유형의 파일 시스템을 사용합니까? SuSE는 BtrFS 파일 시스템 사용의 선구자이며, 이를 사용하는 경우 재부팅하지 않고도 온라인으로 파일 시스템을 다른 파티션이나 다른 디스크로 확장할 수 있는 방법이 확실히 있습니다.

기본적으로 /dev/sda3이제 덮어쓰기가 안전한 마운트 해제된 파티션이고 /BtrFS를 사용하는 경우 다음 두 명령을 실행할 수 있습니다.

btrfs device add /dev/sda3 /
btrfs filesystem balance /

이제 sda3루트 파일 시스템에 대략적인 추가 용량이 있어야 합니다.

관련 정보