어떤 경우에는 Windows 설치를 한 컴퓨터에서 다른 컴퓨터로 이동하는 것(하드 드라이브를 물리적으로 이동하는 것)이 어려울 수 있다는 것을 알고 있지만 Linux에서는 이것이 어떻게 작동합니까? 시작 시 대부분의 드라이버 모듈이 로드되지 않습니까? 그렇다면 이론적으로 그렇게 문제가 될까요?
분명히 xorg 구성이 변경되고 독점 ATI 드라이버가 다시 컴파일되어야 합니다(아마도?). 내가 생각한 것보다 더 많은 것이 있습니까?
두 대의 컴퓨터가 같은 시대에 만들어졌지만 둘 다 i7이지만 하드웨어가 약간 다르다고 가정해 보겠습니다.
업데이트:
답변해 주셔서 감사합니다. 이것은 대부분 내 자신의 호기심에서 비롯된 것입니다. 직장에 Linux 시스템을 설치하여 실행하고 있지만 결국에는 두 개 이상의 모니터를 실행할 수 있도록 듀얼 그래픽 카드를 설치할 수 있는 컴퓨터로 전환하고 싶습니다. 그러나 곧은 아닙니다.
답변1
소스 및 대상 프로세서의 아키텍처가 동일하다고 가정하면(예: 둘 다 x86, 둘 다 x64, 둘 다 arm...) Linux 설치를 이동하거나 복제하는 것은 매우 쉽습니다.
이동하다
이동할 때 하드웨어 종속성을 알고 있어야 합니다. 그러나 대부분의 사용자는 xorg.conf
(최신 배포판에서도 종종 요구하지 않는 경우가 있음) 및 부트로더를 제외하고는 어떤 어려움도 겪지 않습니다 .
디스크 구성이 다른 경우 재구성해야 할 수도 있습니다.부트 로더그리고파일 시스템 테이블( 암호화를 사용하는
/etc/fstab
경우/etc/crypttab
,/etc/mdadm.conf
md RAID를 사용하는 경우). 부트로더의 경우 가장 쉬운 방법은 디스크를 새 시스템에 삽입하고 배포판의 라이브 CD/USB를 부팅한 후 부트로더 복구 도구를 사용하는 것입니다.디스크를 물리적으로 이동하는 것보다 데이터를 복사하는 경우(예를 들어 하나 또는 두 개의 시스템이 Windows로 이중 부팅되는 경우)
dd
(G)Parted 또는 Windows를 사용하여 전체 파티션을 복사하는 것이 더 빠르고 쉽습니다.당신이 가지고 있다면
xorg.conf
디스플레이 관련 옵션(예: 독점 드라이버 관련)을 선언하기 위한 파일입니다. 대상 시스템에 다른 그래픽 카드나 다른 모니터 설정이 있는 경우 수정해야 합니다. 당신은 또한 설치해야합니다전용 드라이버이동하기 전에 대상 시스템의 그래픽 카드(해당하는 경우)를 확인하십시오.선언한 경우모듈 옵션또는 블랙리스트
/etc/modprobe.d
(대상 시스템에 맞게 조정해야 할 수도 있음).
클론
복제 설치에는 이동과 동일한 하드웨어 관련 문제가 포함되지만 새 시스템에 새로운 ID를 부여하기 위해 알아야 할 몇 가지 사항이 있습니다.
편집 새 시스템에 새 이름을 지정합니다. 아래에 표시되는 다른 호스트 이름을 검색하세요. 일반적인 위치는 (별칭 127.0.0.1) 및/또는 기타 메일 시스템 구성입니다.
/etc/hostname
/etc
/etc/hosts
/etc/mailname
재생하다SSH 호스트 키.
다음 사항을 필요에 따라 변경하세요.네트워크 구성(예: 고정 IP 주소).
RAID 볼륨의 UUID를 변경합니다(필수는 아니지만 혼동을 피하기 위해 권장됨)
mdadm -U uuid
.
당신은 또한 볼 수 있습니다Ubuntu의 단계별 복제 가이드.
현재 데스크탑 컴퓨터 설치는 두 개의 RAID-1 미러링 디스크 중 하나를 분리하여 새 컴퓨터로 이동하고 기존 디스크에 RAID-1 볼륨을 생성한 다음 미러를 다시 동기화하고 변경하는 방식으로 이전 컴퓨터에서 복제되었습니다. 위에 설명된 내용이 적용됩니다.
답변2
이것이 귀하의 질문에 대한 답변인지 확실하지 않지만 일반적으로 정반대의 작업을 수행합니다. 즉, 사용자 폴더를 이동하고 모든 것을 다시 설치합니다. 이론적으로 모든 사용자 정의 및 개별 구성 파일은 사용자 폴더에 있어야 하므로 전송해야 할 유일한 파일은 사용자 폴더입니다.
일부 패키지 관리자는 설치된 모든 패키지를 나열할 수 있으므로(Debian/Ubuntu에는 해당 패키지 dpkg --list
, Gentoo에는 포함 /etc/world
등) 다음을 수행할 수 있습니다.
- 새 시스템에 기본 배포판 설치
- "다른 컴퓨터에 있는 모든 패키지를 설치하세요"라고 지시합니다.
- 사용자 폴더 복사
기능적으로 동일한 시스템이 완성되어야 합니다.
답변3
실제로 Windows에서는 하드 드라이브의 내용을 복사하거나 PC 간에 하드 드라이브를 전환하여 설치를 새 PC로 옮기는 것이 거의 불가능하지만 Linux에서는 매우 잘 작동합니다. Thinkpad R52에서 Thinkpad T400으로 전환하고 기존 드라이브의 내용을 새 드라이브에 복사했습니다(기존 드라이브를 USB를 통해 연결된 외부 인클로저에 넣고 모든 것을 Gparted-Live-CD에 복사했습니다). 그 후에 내가 해야 할 일은 Grub을 MBR에 수동으로 넣고 시작하는 것뿐이었습니다. 모든 것이 여전히 나에게 효과적입니다.
Michael이 말했듯이 일반적으로 새 PC는 시간이 지남에 따라 쌓인 정크를 제거할 수 있는 좋은 기회이지만 때로는 빨리 작업으로 돌아가야 할 때도 있고 모든 드라이버가 작동하기 때문에 하드 드라이브 콘텐츠 복사가 Linux에서 잘 작동합니다. 드라이버는 설치 없이 커널에서 사용할 수 있습니다. 드라이버는 이제 modprobe.conf에 수동으로 나열되지 않고 자동으로 로드됩니다.
이전 PC(예: Raid 시스템, 전용 그래픽 드라이버 등)에서 드라이버를 수동으로 구성해야 하는 경우에만 문제가 발생할 수 있습니다.
답변4
개요
최근에 Arch Linux 설치를 다른 드라이브로 옮겼습니다.더 작은원래 드라이브보다
원시 드라이브는 하나의 파티션만 사용하므로 작업이 단순화됩니다. 루트 파티션과 별도의 부팅 파티션이 있는 경우이것은 대답이다이것이 도움이 될 수 있습니다.
단계는 다음과 같습니다.
- 데이터를 백업하세요.
- 대상 드라이브에 ext4 파일 시스템을 포함하는 파티션을 만듭니다.
- 원본 파티션의 모든 데이터를 대상 파티션으로 복사합니다.
- 설치하다애벌레대상 드라이브에서 부트로더 역할을 합니다.
힌트
시작하기 전 팁: 연결 중인 장치(예: /dev/sdb
)의 경로를 결정하고 일반적으로 장치 및 파티션의 상태를 감시하려면 다음을 사용합니다.watch
결합하다lsblk
:
watch lsblk -o tran,name,model,fstype,label,mountpoints,fssize,fsavail,fsused,fsuse%
2초마다 업데이트되고 다음 출력이 생성됩니다.
TRAN NAME MODEL FSTYPE LABEL MOUNTPOINTS FSSIZE FSAVAIL FSUSED FSUSE%
sata sda SanDisk SSD PLUS 1000GB
├─sda1 ext4 VM partition /sda1 108G 50G 53.4G 49%
└─sda3 ext4 / 808G 561.3G 205.7G 25%
usb sdb SABRENT
└─sdb1 ext4 new_daedalus /run/media/me/new_daedalus 29.2G 25.3G 2.4G 8%
sata sr0 MATSHITADVD-RAM UJ8A2
한 파티션의 내용을 다른 파티션으로 복사하므로 많은 공간을 차지하는 조각을 제거하는 것이 좋습니다. 다음 명령을 사용하여 소스 파티션을 확인하십시오.ncdu
가장 많은 데이터가 포함된 디렉터리를 대상으로 하고 가능하면 삭제하거나 이동합니다.
또 다른 점: 저는 SATA-USB 어댑터를 사용합니다.이것들원본 및 대상 드라이브를 내 컴퓨터에 연결합니다.
세부 사항
데이터를 백업했고 대상 드라이브가 있다고 가정하고 /dev/sdb
분석해 보겠습니다.
대상 드라이브에 ext4 파일 시스템을 포함하는 파티션을 만듭니다.
- Linux 파티션 생성(0x83을 입력하세요.내부에막 생물 반응기):
sudo sfdisk /dev/sdb <<< "type=83"
- 새 파티션에 파일 시스템을 만듭니다.
sudo mkfs.ext4 -L new_partition /dev/sdb1
- Linux 파티션 생성(0x83을 입력하세요.내부에막 생물 반응기):
소스 파티션의 모든 데이터를 대상 파티션으로 복사합니다.
- 다음은 이전 파티션과 새 파티션이 모두 마운트되어 있다고 가정합니다.
sudo rsync -a --hard-links --delete --progress --human-readable --stats /run/media/me/old_partition/ /run/media/me/new_partition/
- 나는 사용했다
rsync
여기.cp
같은 목적을 달성하기 위해 good old를 사용할 수도 있습니다 .sudo cp --recursive -a /run/media/me/old_partition/* /run/media/me/new_partition/
- 다음은 이전 파티션과 새 파티션이 모두 마운트되어 있다고 가정합니다.
설치하다애벌레대상 드라이브의 부트로더로:
- 새 파티션에 실행하는 데 필요한 가상 파일 시스템을 추가합니다
grub-install
.sudo mount --bind /dev /run/media/me/new_partition/dev; sudo mount --bind /proc /run/media/me/new_partition/proc
- 새 파티션의 루트 디렉터리를 현재 루트 디렉터리로 만듭니다.
sudo chroot /run/media/me/new_partition/
- 대상 드라이브에 GRUB를 설치합니다(참조:이것자세한 내용은 여기를 참조하세요.):
grub-install /dev/sdb; grub-mkconfig -o /boot/grub/grub.cfg
chroot
Ctrl+를 사용 d하거나 종료하세요.exit
- 가상 파일 시스템과 파티션 자체를 마운트 해제합니다.
sudo umount --recursive /run/media/me/new_partition
- 새 파티션에 실행하는 데 필요한 가상 파일 시스템을 추가합니다
이제 new_partition
드라이브에 설치된 Linux를 사용할 수 있습니다 /dev/sdb
.