Gentoo 설치를 통해 보는 리눅스 시스템의 기본 개념들 3 - 리눅스가 설치된 상태

설치
리눅스 설치
어떻게 설치하느냐, 를 생각하지 말고 설치된 상태란 뭐냐를 생각해 봅시다.
혹시 윈도우즈를 하드에 카피해서 다른 머신에 꽂으면 안 되나, 생각해 보신 적 있으신지요? 대부분 안 되셨을 겁니다. 그런데 그게 그렇게 설치된 상태와 거리가 멀지 않습니다. 약간의 수정/작업이 필요하죠.
기본적으로는 제대로 작동하는 리눅스 시스템의 C 드라이브에 해당하는 내용을 카피한 다음, 어떤 수정을 가하는 게 대체로 Gentoo를 설치하는 방식이라고 생각할 수 있습니다. 아주 거칠게 말해 C 드라이브에 해당하는 걸 리눅스에선 루트 파티션이라고 부릅니다.
하드 복사해서 꽂으면 안 되는 이유들에 대해 생각해 봅시다.
하드 복사 이외에 필요한 것들
우선 리눅스 파티션의 파일들을 복사할 경우--제가 알기로 대부분의 설치 디스크는 파일 복사를 씁니다--, 부트 로더는 복사는 보장되지 않습니다.
MBR 방식일 경우 부트로더는 MBR에 있습니다. 얘는 C 드라이브의 일부가 아니며 아예 어느 드라이브의 일부도 아니기 때문에 복사가 안 되겠죠.
EFI의 경우, 얘도 C의 일부가 아니라 대체로 다른 드라이브에 들어 있습니다. 이 경우는 될 수도 안 될 수도 있습니다. 리눅스와 윈도우즈의 디렉토리 구조의 차이점에 관해, 구글 검색 등을 통해 읽어 보시구요. 부트 로더를 설치해 줘야 합니다.
두 번째로 부트로더의 코드와 파일을 MBR이든 EFI 파티션이든 적정한 장소에 갖다 놓는 건 되었다 칩시다. 다음은 보드 펌웨어가 그 부트로더를 인식할 수 있게 해주어야 합니다.
해본 적은 없지만 예상컨대, MBR이라면 장치별로 부팅 순서를 조정해서 새 하드 디스크부터 부팅을 하게 하면 괜찮을 겁니다. EFI라면, 여전히 부트로더를 새 보드 펌웨어에게 인식시켜 줘야 한다는 문제가 남습니다.
이 두 과정이 되고 나면 아마도 새 커널로 부팅까지는 가능할 겁니다. 다음 문제는 장치들이죠. 예컨대 이전 컴퓨터는 nvidia 그래픽 카드를 썼고 지금 컴퓨터는 radeon인데, 이전 컴퓨터에 어쩌다 보니 딱 그 그래픽 카드만 지원하도록 커널이 설정되어 있었다면, 커널로 부팅은 되지만 제대로 시작은 안 되겠죠. 혹은, 커널이 이전 i7 core의 avx512 명령어들까지 활용하게 빌드되었는데 새 컴퓨터는 아주 오래된 amd 머신이라면 머신이 이해하지 못하는 명령어가 커널/프로그램 군데군데 들어 있어서 안 될 겁니다. 혹은 fstab 이라고 커널에게 현재 어떠어떠한 디스크 등이 있으니 마운트 해달라고 얘기하는 설정 파일이 있는데, 컴퓨터가 바뀌면 장치가 바뀌니 그냥 바꿔 꽂는다고 동작하진 않을 겁니다.
몇 가지 설정 문제가 있을 수 있겠구요. 예컨대 네트웤 환경이 완전히 달라서 시스템이 어떻게 hanging한다거나.. 이런 문제가 있을 수도 있겠죠.
요약
리눅스 설치는 동작하는, 그러나 미니멀한 리눅스 시스템의 루트 파일 시스템을 새 디스크에 카피하는 데서 멀지 않습니다. 그게 그대로 돌아가진 않죠. 우선 부트로더와 보드 펌웨어를 재조정해줘야 합니다. 다음으로는 필요하다면 커널이, 원본 루트 파일 시스템이 있던 머신에는 없던 장비들도 인식할 수 있게끔 해줘야 합니다. Gentoo의 경우 커널은 대부분의 경우에 소스부터 빌드하게 됩니다. 마지막으로 몇몇 설정 파일을 재조정해줍니다.
댓글 달기