내 기존 홈 서버에는 하드웨어와 SSD에서 실행되는 CentOS 7이 설치되어 있지만 SSD는 꽤 오래되었습니다. 이 시스템은 Intel을 기반으로 합니다.
- 코어 i7 4770K @ 3.5GHz
- 16GB 커세어 리벤전스 DDR3 RAM
- 기가바이트 GA-B85-HD3
- 삼성 840 EVO 500GB SSD
- 리눅스 커널: 3.10.0-1127.19.1.el7
방금 최신 AMD Ryzen 기반 시스템에서 드라이브 부팅을 시도했는데 거의 즉각적인 커널 패닉과 작동 중지로 인해 부팅 프로세스가 전혀 즐겁지 않았습니다.
memtest의 현재 시스템은 테스트마다 다른 수백 개의 임의 메모리 위치를 나열하는 많은 오류를 보여줍니다. SSD에 불량 섹터가 있는 것으로 표시되어 시스템을 업그레이드하고 싶습니다. 현재 운영 체제를 유지하면서 이 문제를 어떻게 해결할 수 있습니까? 운영 체제가 실행될 수 있는 호환 하드웨어의 표준은 무엇입니까?
답변1
따라서 우선 RAM에 오류가 표시되고 SSD에도 오류가 표시되는 경우 현재 시스템은 실행되지 않으며 아무것도 잃지 않습니다. :) 이는 또한 백업 생성이나 같은 작업을 수행할 수 없음을 의미합니다. 손상된 RAM이 간섭을 일으킬 수 있으므로 기존 시스템 USB 썸 드라이브를 사용하여 부팅 가능하게 만드세요. 따라서 가장 먼저 해야 할 일은 현재 SSD를 백업하는 것입니다.
그런 이유로,
- 외장 하드 드라이브와 같은 백업 미디어를 확보하세요.
- 라이브 USB 미디어를 다운로드하려면 RAM 오류가 없는 머신을 사용하세요. Fedora 라이브 설치 프로그램 미디어를 사용했지만 중요하지 않습니다. 새 PC에서 최신 Linux로 부팅하면 됩니다.
- 기존 SSD를 새 PC에 연결
- 라이브 USB 미디어에서 부팅
- 최신 파일 시스템(예: XFS, btrfs)을 사용하여 외부 미디어를 포맷합니다. (페도라 USB 이미지가 함께 제공되는데
blivet-gui
솔직히 꽤 좋은 도구입니다.) ddrescue
백업 미디어에 기존 SSD를 이미지화 하는 데 사용됩니다 . (fedora live: 다음을sudo dnf install ddrescue
사용하여 설치할 수 있습니다.- 이미지를 읽기 전용으로 설정
그래서. 그것은 중요하지 않습니다. 이제 우리는 더 많은 데이터 손실 없이 오래되고 손상된 SSD를 버릴 수 있다는 것을 알고 있습니다.
이제 솔직히 말해서 새 PC에 새 SSD를 설치하고 최신 Linux를 설정하여 해당 작업을 수행한 다음 "기존" SSD를 옆에서 작동하도록 하는 것이 좋습니다. 너할 수 있는그러나 라이브 USB를 사용하여 계속 작업할 수 있습니다.
- (보너스: 위의 XFS 또는 btrfs를 사용하는 경우
cp
복사에는 시간이나 속도가 필요하지 않습니다. 수정을 시작할 때까지, 블록이 영향을 받은 다음 실제 수정된 사본을 얻을 때까지 수정되지 않은 데이터의 미러일 뿐입니다.) losetup -P -f /pat/to/imagefile
Linux에서 이미지의 파티션 테이블을 스캔하고 각 파티션에 대해 테이블을 생성할 수 있습니다/dev/loopNpM
.fsck
파일 시스템을 복구하려면 이러한 파티션을 사용하십시오. 일부는 깨질 것입니다.- /sysimage와 같이 루트 파일 시스템을 마운트할 디렉토리를 생성하고 "host"에서 /sysimage /sys, /sysimage/proc로 /run을 마운트
/dev/loopNpM
합니다mount -t bind
. 파일 시스템. - chroot를 사용하여 /처럼 보이는 루트 파일 시스템에 쉘을 생성하고
mount -a
나머지 파티션(특히 /boot, /boot/EFI)을 마운트합니다. - 이제 실제로 이전 CentOS 설치 작업을 하고 있습니다. 가능할 때마다 centOS를 업데이트하십시오.
- blivet-gui를 사용하여 새 SSD에 필요한 파티션(/, /boot, ...)을 다시 생성합니다. 설치하고 내용을 복사해 보세요.
- 동일한
chroot
트릭을 사용하되 새로운 SSD 대상을 사용하십시오. - chroot에서 실행하여
yum reinstall kernel
initramfs를 다시 생성합니다. - /boot/efi/EFI가 설치되어 있는지 확인하세요.
- chroot가 실행되는 동안
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
- chroot에서 다음을 실행하여
yum reinstall grub2-efi grub2-efi-modules shim
새 SSD에 부트로더를 설치합니다.
이렇게 하면 시스템이 새 하드웨어에서 제대로 부팅될 수 있습니다. 하지만. 기존 CentOS 7이 새 하드웨어에서 실행된다는 보장은 없습니다.
두 가지 옵션:
- 최신 CentOS 또는 Fedora로 업데이트
- 가상 머신의 파일 시스템 이미지에서 이전 CentOS 실행
답변2
귀하의 홈 서버에는매우오래된 커널은 빛나는 새로운 Ryzen 시스템에서 부팅할 때 많은 문제의 원인이 될 것이라고 확신합니다.
저는 Linux가 하드웨어 간에 원활하게 이동할 수 있다고 생각하지만 필수 전제 조건으로 소프트웨어는 두 하드웨어 모두와 호환되어야 합니다.
업그레이드를 시도할 수 있습니다.시작새 하드웨어로 옮기기 전에 시스템을 살펴보세요.