전체 /usr/ 디렉토리를 이동하는 방법

전체 /usr/ 디렉토리를 이동하는 방법

다른 파티션을 포맷하고 싶습니다 /usr/. 그래서 루트 파티션으로 옮기고 싶습니다. 나는 달리려고 노력한다

rsync -avzr /usr/ /usr1/

그런 다음 예를 들어 작동하는지 시도했고 /usr1/usr/bin/mv결과는 괜찮았습니다. 그래서 umount -l /usr을 실행했습니다.

목적은 오래된 usr 드라이브를 교체하는 것입니다. 그런데 뭔가 잘못됐고, 다시 실행해 보니 실제로 존재하고 실행 가능하기 때문에 이상하다는 생각이 /usr1/usr/bin/mv들었습니다 . bash: /usr1/usr/bin/mv: No such file or directory내가 뭐 잘못 했어요? 이를 수행하는 더 좋은 방법이 있습니까?

답변1

/usr가능하면 다시 설치하십시오. 그렇지 않은 경우 복구 환경에서 부팅해야 합니다.

나는 당신이 설명하는 명령을 실행하고 있다고 생각하지 않습니다. 내 생각엔 소스에서 후행 슬래시를 놓쳤을 가능성이 더 높다고 생각합니다.

rsync -avzr /usr /usr1/    # DO NOT RUN THIS

이는 /usr디렉토리 이름으로 복사되므로 /usr1개입 을 제거하여 이 문제를 해결해야 /usr/bin/mv합니다 ./usr1/usr/bin/mv/usr

아래 단계에 따라 이 작업을 수행할 수 있습니다. 언제든지 제가 설명한 것과 다른 내용이 나타나면 즉시 중단하고 귀하가 수행한 작업과 어떤 메시지가 반환되었는지 (귀하의 질문에) 보고해 주십시오.

cd /usr1      # No output
ls            # You should see only 'usr' and 'lost+found'
mv usr/* .    # Notice the important trailing dot. No output
rmdir usr     # No output
cd /

이제 제거하고 다시 설치해 보십시오.

umount /usr
mount --bind /usr1 /usr

이것이 작동하면 이전 장치가 있는 장치에서 설치하는 대신 이전 장치가 있는 장치에서 설치 /etc/fstab하도록 업데이트 한 다음 편할 때 시스템을 재부팅할 수 있습니다./usr/usr1/usr

답변2

최신 Linux 시스템에서 대부분의 실행 파일은 공유 라이브러리를 사용합니다. 명령과 함께 사용되는 내용을 확인하십시오.

ldd /usr/bin/mv

특히 중요한 것은 동적 로더입니다 /lib64/ld-linux-x86-64.so.2. 경로는 실행 파일에 하드 코딩되어 있으며 해당 경로에서 로더를 사용할 수 있는지 확인해야 합니다.

다른 라이브러리의 경우 다음을 사용할 수 있습니다 LD_LIBRARY_PATH.

export LD_LIBRARY_PATH=/usr1/lib64

동적 로더를 사용할 수 없는 경우 GLIBC 로더를 실행 파일로 호출할 수 있습니다. 다른 로더는 지원하거나 지원하지 않을 수 있습니다.

따라서 이것을 사용하여 실행 파일을 호출할 수 있습니다.

LD_LIBRARY_PATH=/usr1/lib64 /usr1/lib64/ld-linux-x86-64.so.2 /usr1/usr/bin/mv

시스템 경로를 조정해야 할 수도 있습니다.

답변3

이 씹는 것이 당신이 해야 할 일이다오직USB 스틱에서 설치를 부팅하고 해당 도구를 사용하는 등 복구 환경에서 작업을 수행합니다. 최소한 Fedora 설치 미디어를 이런 방식으로 사용할 수 있으며, 배포판에서 사용할 수 없는 경우 일종의 복구 이미지를 제공할 수 있습니다.

당신이 만든 혼란을 진단하고 고치는 것도 마찬가지입니다.

관련 정보