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

Stephen Kyoungwon Kim@Google의 이미지

설치

리눅스 설치

어떻게 설치하느냐, 를 생각하지 말고 설치된 상태란 뭐냐를 생각해 봅시다.

혹시 윈도우즈를 하드에 카피해서 다른 머신에 꽂으면 안 되나, 생각해 보신 적 있으신지요? 대부분 안 되셨을 겁니다. 그런데 그게 그렇게 설치된 상태와 거리가 멀지 않습니다. 약간의 수정/작업이 필요하죠.

기본적으로는 제대로 작동하는 리눅스 시스템의 C 드라이브에 해당하는 내용을 카피한 다음, 어떤 수정을 가하는 게 대체로 Gentoo를 설치하는 방식이라고 생각할 수 있습니다. 아주 거칠게 말해 C 드라이브에 해당하는 걸 리눅스에선 루트 파티션이라고 부릅니다.

하드 복사해서 꽂으면 안 되는 이유들에 대해 생각해 봅시다.

하드 복사 이외에 필요한 것들

우선 리눅스 파티션의 파일들을 복사할 경우--제가 알기로 대부분의 설치 디스크는 파일 복사를 씁니다--, 부트 로더는 복사는 보장되지 않습니다.

MBR 방식일 경우 부트로더는 MBR에 있습니다. 얘는 C 드라이브의 일부가 아니며 아예 어느 드라이브의 일부도 아니기 때문에 복사가 안 되겠죠.

EFI의 경우, 얘도 C의 일부가 아니라 대체로 다른 드라이브에 들어 있습니다. 이 경우는 될 수도 안 될 수도 있습니다. 리눅스와 윈도우즈의 디렉토리 구조의 차이점에 관해, 구글 검색 등을 통해 읽어 보시구요. 부트 로더를 설치해 줘야 합니다.

두 번째로 부트로더의 코드와 파일을 MBR이든 EFI 파티션이든 적정한 장소에 갖다 놓는 건 되었다 칩시다. 다음은 보드 펌웨어가 그 부트로더를 인식할 수 있게 해주어야 합니다.

해본 적은 없지만 예상컨대, MBR이라면 장치별로 부팅 순서를 조정해서 새 하드 디스크부터 부팅을 하게 하면 괜찮을 겁니다. EFI라면, 여전히 부트로더를 새 보드 펌웨어에게 인식시켜 줘야 한다는 문제가 남습니다.

이 두 과정이 되고 나면 아마도 새 커널로 부팅까지는 가능할 겁니다. 다음 문제는 장치들이죠. 예컨대 이전 컴퓨터는 nvidia 그래픽 카드를 썼고 지금 컴퓨터는 radeon인데, 이전 컴퓨터에 어쩌다 보니 딱 그 그래픽 카드만 지원하도록 커널이 설정되어 있었다면, 커널로 부팅은 되지만 제대로 시작은 안 되겠죠. 혹은, 커널이 이전 i7 core의 avx512 명령어들까지 활용하게 빌드되었는데 새 컴퓨터는 아주 오래된 amd 머신이라면 머신이 이해하지 못하는 명령어가 커널/프로그램 군데군데 들어 있어서 안 될 겁니다. 혹은 fstab 이라고 커널에게 현재 어떠어떠한 디스크 등이 있으니 마운트 해달라고 얘기하는 설정 파일이 있는데, 컴퓨터가 바뀌면 장치가 바뀌니 그냥 바꿔 꽂는다고 동작하진 않을 겁니다.

몇 가지 설정 문제가 있을 수 있겠구요. 예컨대 네트웤 환경이 완전히 달라서 시스템이 어떻게 hanging한다거나.. 이런 문제가 있을 수도 있겠죠.

요약

리눅스 설치는 동작하는, 그러나 미니멀한 리눅스 시스템의 루트 파일 시스템을 새 디스크에 카피하는 데서 멀지 않습니다. 그게 그대로 돌아가진 않죠. 우선 부트로더와 보드 펌웨어를 재조정해줘야 합니다. 다음으로는 필요하다면 커널이, 원본 루트 파일 시스템이 있던 머신에는 없던 장비들도 인식할 수 있게끔 해줘야 합니다. Gentoo의 경우 커널은 대부분의 경우에 소스부터 빌드하게 됩니다. 마지막으로 몇몇 설정 파일을 재조정해줍니다.

Forums: 

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.