/var 파티션을 삭제하고 /(루트) 파티션에 대한 /var로 교체합니다.

/var 파티션을 삭제하고 /(루트) 파티션에 대한 /var로 교체합니다.

실수로 파티션을 생성했는데 /var삭제하고 싶습니다. 파티션을 삭제하고 해당 /파티션을 사용하여 다음을 포함할 수 있습니까?/var 아니요OS를 다시 설치해야 합니까, 아니면 하드 드라이브를 다시 파티션하고 모든 것을 다시 설치해야 합니까?

후자의 경우 설치된 업데이트/프로그램을 새 시스템에 자동으로 다시 설치하기 위해 할 수 있는 일이 있습니까? 아니면 시스템에 추가한 모든 항목을 나열하고 수동으로 다시 설치해야 합니까? 내 것은 /home별도의 파티션에 있으므로 새로 설치할 때 이를 재사용할 수 있습니다 /. 하지만 .

운영체제는 쿠분투 12.10입니다.

답변1

Live CD 운영 체제를 사용하여 컴퓨터를 시작할 수 있습니다. 이렇게 하면 /var운영 체제를 손상시키지 않고 이동할 수 있습니다. , , 및 를 사용하여 SLES 설치에서
반대 작업을 수행했습니다 . 다른 배포판에서도 작동한다고 생각합니다. /tmp/var/opt/usr

  1. 라이브 CD 시작
  2. 이전 /var파티션을 다음에 마운트하십시오./mnt/var
  3. 실제 루트 디렉터리를 마운트합니다./mnt/root
  4. 옳은/mnt/root/etc/fstab
  5. 이전 마운트 지점 삭제rmdir /mnt/root/var
  6. 실행하다cp -a /mnt/var /mnt/root/var
  7. 실제 운영 체제 부팅

답변2

유진의 대답확실히 안전하고 올바른 방법입니다. 그러나 어떤 사람들에게는 실행 중인 시스템을 종료하지 않고도 실제로 이 작업을 수행할 수 있다는 것을 아는 것이 좋을 수도 있습니다. 이 답변을 교육용으로 고려하거나 liveCD에서 부팅할 수 없는 상황에서 최후의 수단으로 고려할 수 있습니다.

부인 성명:이 과정은 초보자에게는 권장되지 않습니다. 1단계에 주의를 기울이지 않으면 후속 단계를 수행하는 동안 시스템이 충돌할 수 있으며, 다시 시작한 후 다양한 응용 프로그램의 예기치 않은 동작이 발생할 수 있습니다. 이것을 시도하기 전에 당신이 잘 알고 있는지 확인해야합니다/varTLDP에 대한 설명배포판 별 편차.

  1. 파일이 열려 있는 프로그램을 닫습니다./var. 먼저 콘솔("실제" tty 중 하나)로 전환하고 데스크탑 관리자를 사용하는 경우 X 서버와 데스크탑 관리자(kdm/gdm/lightdm/...)를 닫습니다.이 작업을 수행하는 방법이나 그 의미를 모른다면 계속하지 마십시오. 시스템이 손상될 가능성이 너무 높으며 여기에서 설명하는 단계별 프로세스에는 너무 많은 가능성이 포함되어 있습니다. 죄송합니다!

    에서 파일을 여는 나머지 프로그램을 사용 lsof하거나 찾으십시오 . 프로그램이 시스템 서비스에 의해 시작되거나 시작되는 경우 작업을 종료하는 것보다 서비스를 중지하는 것이 더 좋습니다. 일부 프로그램/서비스가 이 방법으로 처리하기에는 너무 완고한 경우 단일 사용자 모드(초기화 수준 1)로 전환해 볼 수도 있습니다. 대부분의 경우 시스템이 해당 위치를 사용하는 경우 예를 들어 pid 아래에 일부(!) 파일을 열어 두어도 괜찮습니다 .fuser/var/var/var/run

  2. 루트 파티션을 마운트합니다(두 번째)./mnt/tmp빈 디렉터리를 임시 마운트 지점으로 선택하세요. 예시 로 사용하겠습니다 . 일반적으로 이 mount명령(매개변수 없음)은 루트 파티션 뒤에 있는 실제 장치 이름을 표시하지 않으므로 그것이 어느 것인지 확인해야 합니다(확실하지 않은 한). 일반적으로 lsblk부트로더 구성(시스템에 부트로더 구성이 있는 경우)에서 정보를 얻거나 cat /proc/cmdline보고된 크기로 파티션을 식별 하여 정보를 얻을 수 있습니다 fdisk.

  3. 콘텐츠를 복사합니다 /var.파티션을 찾아 마운트한 후 를 /var사용하여 내용을 rootfs(새 위치에 마운트됨)에 복사합니다 cp -ad. 예: cp -ad /var /mnt/tmp/. 참고: 배포판이 여전히 /var/run/var/lock디렉토리를 관리하고 최근에 도입되지 않은 경우 /run/이 두 디렉토리의 내용을 건너뛰어야 합니다. 만약에외부 전역 변수쉘에서 활성화되어 있으면 cp -ad /var/!(run|lock) /mnt/tmp/var/- 또는 cpio대신 사용할 수 있습니다. 복사한 후 두 디렉터리를 만들고 /mnt/tmp/var/권한을 올바르게 설정하면 됩니다.

  4. /var에서 오래된 항목을 삭제합니다 fstab.물론 안전한 방법은 주석을 달는 것입니다.

  5. 재시작

답변3

루트 아래:

cp -rf /var /var-new && umount /var && mv /var /var-old && mv /var-new /var

그런 다음 /etc/fstab에서 /var 마운트 지점을 제거하거나 주석 처리하고 재부팅합니다.

관련 정보