우분투 이런것 가능한가요?

제가 내년에 우분투설치해논 서버컴퓨터를 업그레이드할생각입니다.
그런데 최대한 유저들의 불편을 줄이기위해서 현재 사용중인 데스크탑에 업그레이드할 하드를 꼽아서 우분투 및 관련 프로그램 다 설치후에 뺴서 기존서버에 꼽으면 그대로 다 인식하나요?
예전에 다른컴퓨터로설치한 하드는 다른컴퓨터에 꼽으면 드라이브인식에문제가있다는 글을 봐서 질문드립니다.!

[quote="wjdgns421":2lgznvxb]현재 사용중인 데스크탑에 업그레이드할 하드를 꼽아서 우분투 및 관련 프로그램 다 설치후에 뺴서 기존서버에 꼽으면 그대로 다 인식하나요?[/quote:2lgznvxb]빼서? 뺴서?

[url:2gs5yw13]http://www.linuxforums.org/forum/ubuntu-linux/176089-can-i-install-ubuntu-hdd-then-move-another-computer.html[/url:2gs5yw13]

검색해보니까 가능한거 같네요. 처음 로딩시 safe graphics mode로 로그인해서 그래픽 드라이버를 업데이트 해주면 될거라는군요.

아래 내용도 참조하세요
[url:2gs5yw13]http://ubuntuforums.org/showthread.php?t=1912346[/url:2gs5yw13]

[code:2gs5yw13]Back up, uninstall your video driver (and perhaps other special hardware drivers), move your drive,
set your Ubuntu drive to boot first in your BIOS, run
sudo update-grub
and install the appropriate video driver
[/code:2gs5yw13]
[url:2gs5yw13]http://ubuntuforums.org/showthread.php?t=2101278[/url:2gs5yw13]

그냥 다른 컴퓨터에서 인스톨 후 서버에 하드를 단다고 해서 되는 것은 아닙니다.

데스크탑으로 사용하는 컴과 서버로 사용할 컴의 제원이 다를 것이 확실하오니
말씀 처럼 드라이버, 마더보드, CPU 사용등에서 문제가 발생합니다.

그렇다고 해서 말씀 하신 작업이 불가능 한 것은 아닙니다.
또한 서버 제원이 업그레이드 되어도 다른 컴에서 설치 후 하드를 체인지할 필요 조차 없습니다.
여기서 리눅스 커널의 빛이 영롱하게 발휘 됩니다. (윈도우와는 다르지요…^^)

해답은 리눅스의 커널을 재컴파일 하여 사용하시면 됩니다.
또한 패키지 설치된 프로그램 이외에 직접 컴파일 하여 사용하는 프로그램이 있다면
재컴파일이 필요하므로 되도록 데탑 또는 서버에서 프로그램 설치시 패키지로 설치하시면 추가되는 작업은 없을 것이라 봅니다.

그리고 서버를 사용하신다면 VGA, grub와 같은 부가적 요소는 필요가 없습니다.
서버 버전을 데스크 탑으로 활용하거나 그래픽 제원을 사용하지 않는다면 말입니다.

일반적으로 서버관리자 입장에서 커널의 재컴파일이 가능하다는 것은 엄청난 장점입니다.
그리고 마더보드, CPU등의 업그레이드 시 커널만 재컴파일 하여 사용하는 것이 일반화 되어 있습니다.

위의 방법은 모든 리눅스 배포반에서 이용 가능한 방법입니다. 참고 하십시오.

하드웨어 제원은 다르지만, 다른하드디스크로 교체가 가능할 것으로 보입니다.
왜냐면, 리눅스는 윈도우즈와 다르게, 하드웨어에 관련된 정보는, /proc, /sys, /dev 등에 부팅시 자동으로 검색해서
마운트하게 되어있습니다.

대부분의 소프트웨어의 경우도, 레지스트리가 아닌, text 형식의 설정파일을 /etc에 보관하며,
하드웨어에 종속되게 프로그램되어 있지 않습니다.

다만, 반드시 하드웨어, 시스템 종속적일 수 밖에 없는 것들이 있는데,
GRUB부트로더는 어쩔 수 없이, 하드웨어 종속적일 수 밖에 없고,
하드웨어에 따라, 시스템 성능에 관련되어, 시스템 설정을 정의하는 sysctl 설정파일들이 그것입니다.

대부분은 별 문제가 없을 것으로 생각되지만, 안전하게 업그레이드 하는 방법은,
데스크탑에서 설치하는 것이 아니라, 기존의 서버에서 설치하는 것입니다.

문제는 새 디스크를 기존서버에 직접 장착할 수 없을 수 있는데, 이것은 네트워크 드라이브로 처리하면 됩니다.

시나리오는 다음과 같습니다.

데스크탑에 새 하드 디스크를 장착 후, 파티셔닝
서버에 네트워크 디스크로 마운트 합니다.
서버에서 네트워크 디스크에 우분투를 최소 설치합니다.
서버에서 네트워크 디스크로 chroot하여, 우분투 정식 패키지들을 설치하고, 각종 설정을 마칩니다.

  1. 데스크탑에서 새 하드디스크를 장착 후, 파티셔닝
    알아서 하시면 됩니다.

  2. 데스크탑에서 새 하드디스크를 마운트
    sudo mkdir /newdisk
    sudo mount /dev/sdb2 /newdisk
    sudo mount /dev/sdb1 /newdisk/boot
    sudo mount /dev/sdb4 /newdisk/home

  3. 기존 서버에 네트워크 디스크로 부착

기존 서버에 로그인

ssh serverid@myserver

버전 동기화를 위한 업데이트

sudo apt-get update && sudo apt-get upgrade

기존 서버에 sshfs 설치

sudo apt-get install sshfs

마운트 포인트 생성

mkdir newdisk-on-server

서버에서 새 하드디스크를 마운트

sshfs desktopid@mydesktop:/newdisk newdisk-on-server

  1. 설치 작업
    #------------------------------------------

최소설치를 위한 debootstrap 설치

sudo apt-get install debootstrap

최소 설치

sudo /usr/sbin/debootstrap --arch amd64 trusty newdisk-on-server http://ftp.daum.net/ubuntu

파티션 정보 편집

tee newdisk-on-server/etc/fstab >/dev/null <<EOF
/dev/disk/by-label/SERVER-BOOT /boot ext4 defaults 0 1
/dev/disk/by-label/SERVER-ROOT / ext4 defaults,errors=mount-ro 1 1
/dev/disk/by-label/SERVER-HOME /home ext4 defaults 1 1
/dev/sda3 none swap sw 0 0
EOF

설치를 위한 패키지 정보 복사

dpkg-query -W -f=‘${Package} ${status}\n’ | sed -n ‘/install ok installed/{s/^(\S+)\s.*$/\1 install/p}’ | sudo tee newdisk-on-server/dselect_list >/dev/null

컴퓨터 이름 복사

sudo cp /etc/host newdisk-on-server/etc/hostname

DNS서버 정보 복사

sudo cp /etc/resolv.conf newdisk-on-server/etc/resolv.conf

네트워크 설정 복사

sudo cp /etc/networks newdisk-on-server/etc/
sudo rsync -av /etc/network/ newdisk-on-server/etc/network/

소프트웨어 저장소 복사

sudo rsync -av /etc/apt/ newdisk-on-server/etc/apt/

chroot

for dev in /proc /sys /dev /dev/pts; do sudo mount -B $dev newdisk-on-server$dev
LANG= chroot newdisk-on-server /bin/bash

루트 패스워드 설정

passwd

계정 추가

adduser defaultuser

셰도우 패스워드 설정

dpkg-reconfigure --default-priority passwd

시스템 설치 (서버에 설치된 모든 패키지가 설치됩니다)

mount -a
dpkg --set-selections < /dselect_list
sudo apt-get dselect-upgrade

패키지 설치및 기타설정

원하시는 추후 작업

예를 들어 데이터 베이스 복사, 웹서버 복사 등, rsync를 이용하면 편하겠지요.

언마운트

umount -a

chroot 종료

exit

언마운트 chroot jail

sudo umount newdisk-on-server/{dev/pts,dev,proc,sys}

  1. sshfs 종료

언마운트 sshfs

fusermount -u newdisk-on-server

ssh 종료

exit

  1. 데스크탑에서 GRUB 설치

언마운트

sudo umount /newdisk/{boot,home}

chroot

for dev in /proc /sys /dev /dev/pts; do sudo mount -B $dev /newdisk$dev
sudo chroot /newdisk

chroot 내에서 GRUB 설치

mount -a
grub-install --boot-directory=/boot /dev/sdb
update-grub
unmount -a

chroot 종료

exit

언마운트

sudo umount /newdisk/{dev/pts,dev,proc,sys}
sudo umount /newdisk
sudo rmdir /newdisk

여기 까지 문제가 없다면, 이 디스크를 띠어다가 서버에 부착하기만 하면 되리라 봅니다.


위 방법은 완전한 재설치를 위한 가이드이고,
백업이나 복사를 통해서도 가능합니다.

위의 시나리오 1-3번 까지 진행 후,

sudo rsync -avAH / newdisk-on-server/ --exclude="proc/" --exclude="sys/" --exclude="dev/" --exclude="tmp/" --exclude="var/cache/apt/archives/*"

패키지 캐시 디렉토리 구조만 복사

sudo rsync -v -a -r -f"+ */" -f"- *" /var/cache/apt/archives/ newdisk-on-server/var/cache/apt/archives/

for dev in /proc /sys /dev /dev/pts; do sudo mount -B $dev newdisk-on-server$dev; done
sudo chroot newdisk-on-server

디스크가 바뀌었으므로, 마운트 정보를 변경해 줘야 합니다.

tee newdisk-on-server/etc/fstab >/dev/null <<EOF
/dev/disk/by-label/SERVER-BOOT /boot ext4 defaults 0 1
/dev/disk/by-label/SERVER-ROOT / ext4 defaults,errors=mount-ro 1 1
/dev/disk/by-label/SERVER-HOME /home ext4 defaults 1 1
/dev/sda3 none swap sw 0 0
EOF
update-grub
exit
sudo umount newdisk-on-server/{dev/pts,dev,sys,proc}

그 다음은 5-6 으로 진행하셔도 됩니다.

어자피, 시스템 환경은 같다고 볼 때, 복사 만으로도 대부분의 문제는 발생하지 않지요.
다만 디스크가 바뀌었으니, uuid등이 달라졌을 것이고, 그것을 맞추기 위해 /etc/fstab 수정과 update-grub 명령이 필요합니다.

답변해주신분들 전부 감사합니다.
나중에 시도할때 참고하겠습니다.

빼고인데 타자치다보니 쉬프트눌린채로 ㅒ가 들어갔네요ㅋㅋ

[quote="wjdgns421":tci1ze6a]빼고인데 타자치다보니 쉬프트눌린채로 ㅒ가 들어갔네요ㅋㅋ[/quote:tci1ze6a]세벌식을 쓰면 그러한 오타가 나지 않습니다. 한번 도전해 보셔요 ;)

[quote="세벌":226cclzz][quote="wjdgns421":226cclzz]빼고인데 타자치다보니 쉬프트눌린채로 ㅒ가 들어갔네요ㅋㅋ[/quote:226cclzz]세벌식을 쓰면 그러한 오타가 나지 않습니다. 한번 도전해 보셔요 ;)[/quote:226cclzz]

네이버쳐보니 배치가 ㅎㄷㄷ하네요.