연구 및 개발/Software / / 2018. 3. 16. 11:00

우분투 하드 복사

실험실에서 데이터 획득 시스템으로 SBC 10대를 운용하고 있습니다.

기존 윈도우 기반의 시스템에서 리눅스 기반의 시스템으로 포팅을 하고 있는데 10대의 컴퓨터에 각각 리눅스를 새로 깔고 드라이버를 올리고 프로그램을 셋업하고 하는 일이 보통일이 아닙니다.

기존 윈도우를 사용할때는 그냥 하드 카피머신으로 카피를 하면 잘 부팅이 되고 그랬는데 왠지 리눅스는 그렇게 해서는 동작을 하지 않았습니다.


결정적으로 하드 카피머신은 대상 용량이 원본 디스크의 용량과 같거나 큰 경우에만 복사가 가능했습니다.

저는 512GB SSD에 만들어놓은 원본 디스크를 500GB, 2TB SSD에 각각 카피를 해야 했는데 2TB야 문제가 없다고 쳐도 500GB에 카피를 하는것은 카피머신으로는 가능하지 않았습니다.

애초에 500GB SSD에 원본을 이미지를 만들었으면 되지 않느냐구요? 

네... 맞습니다.. 하지만 머리가 나쁘면 손발이 대신 똥을 치우는 법이죠.


삽질을 하는 시간과 PC 10대를 각각 세팅하는 시간을 재보다가 리눅스는 모든것이 파일이라는 개념을 가지고 그냥 삽질을 해보기로 결정합니다.. 

그래서 반나절동안 삽질한 결과를 정리해서 포스팅 해두려고 합니다.


저는 512기가 SSD에서 실제 데이터는 20기가 정도밖에 안됐기 때문에 500기가 SSD에 카피가 가능했습니다.

당연히 실제 데이터가 대상 SSD를 초과하면 카피가 안되겠지요.

원본보다 용량이 작은 SSD에 카피하기 위해서 먼저 gparted에서 원본 SSD의 rfs영역을 대상 SSD에 들어갈 수 있을정도로 적당히 12기가 정도 줄여준 후에 아래와 같이 부트영역과 rfs영역을 카피하고 swap 영역은 별도로 맨 뒷쪽으로 만들어 준 후 남는 영역을 합쳐주면 용량이 작은 SSD에도 카피가 잘 됐습니다.


------------------------------------------------


먼저 우분투를 설치할때 사용하는 Live USB를 준비합니다.


카피하려고 하는 SSD만 PC에 연결하고 Live USB로 부팅합니다.

그리고 원본 SSD를 USB등을 통해 컴퓨터와 연결합니다. 

terminal에서 sudo gparted를 치면 gparted 프로그램이 실행되는데 이렇게 연결하니 카피하려고 하는 SSD가 sda, Live USB가 sdb, 원본 SSD가 sdc로 인식되었습니다.

사실 원본과 카피 대상을 잘 구분할 수 있으면 꼭 이렇게 순서가 중요하지는 않습니다만 저는 작업해야 할 PC가 10대라서요..

절차가 중요합니다 절차가..


자 그럼 이것저것 삽질 하느라 파티션도 이미 잡혀있고 고생했던 SSD를 EFI로 부팅하기 위해 gpt로 파티션을 만들어줍니다.

Device -> Create Partition Table을 클릭하면 만들 수 있습니다.


그다음 원본 SSD인 sdc로 갑니다. 

아래 그림처럼 열쇠 모양이 떠 있으면 카피가 안되니 마우스 오른쪽 버튼을 눌러 Unmount 해줍니다.


위에꺼부터 차례대로 복사를 진행합니다.

Ctrl+C 눌러도 되고 Copy 버튼을 눌러도 됩니다.


대상 SSD인 sda로 이동해서 Ctrl+V 또는 Paste를 누릅니다.


부트영역부터 카피합니다.


그 다음 root file system 영역을 카피해주고..

swap 영역은 카피하지 않고 직접 생성해줍니다.

Free space following 부분을 0으로 놓으면 뒤에부터 생성이 됩니다.

swap 영역은 만들때 File System을 linux-swap으로 해야합니다.


자 그랬더니 RFS과 swap영역 사이에 빈 공간이 생겼네요..


아까우니까 RFS랑 합쳐줍시다.


합칠때 주의할점은 이게 선택에 따라 Resize 또는 Move가 될 수 있다는 점입니다.

아래 그림처럼 Free space preceding과 Free space following 부분을 모두 0으로 두고 New size부분에 기존 용량과 추가할 영역이 합쳐진 용량이 들어가도록 해야 합니다.


그렇지 않으면 아래 그림처럼 부팅을 제대로 못할지도 몰라.. 라고 하는 경고 메세지를 한번 날려주고는


이렇게 빈 영역과 RFS 영역이 바뀌게 됩니다..


하지만 이럴떄는 당황하지 않고 Ctrl+Z를 눌러 되돌아간 뒤 다시 잘 합쳐줍니다.


그 다음 V 아이콘을 눌러 복사를 진행합니다. 

아래와 같이 Apply operations to device 창이 나오면 Apply를 눌러줍니다. 

그림만 보시고 Cancel을 누르면 당연히 진행이 안됩니다..


복사가 진행되기 시작합니다. 


그럼 이제 여유로운 마음으로 물을 뎁히고 원두를 갈고 드리퍼에 놓고 살짝 뜸을 들인 뒤 커피를 한잔 내립니다.

참고로 저는 하리오 드리퍼를 사용합니다. 칼리타와 달리 밑 부분이 원형이라는 특징이 있습니다.

이렇게 커피를 한잔 내려서 자리로 돌아오면 아마 아래와 같이 복사가 완료되었다는 메세지가 떠 있을겁니다..

2TB짜리를 카피하더라도 실제 복사할 데이터가 20GB정도밖에 안되는 상태에서는 10분정도면 카피가 끝나더군요..


자 이렇게 다 됐다!! 라고 재부팅 하면 아마 다음과 같은 에러메세지가 나오면서 부팅이 안될겁니다.


재부팅 하기 전에 아래와 같은 명령어를 입력합니다.

sda는 자신의 상황에 맞추어 대상 드라이브를 입력해야 합니다. 아마 저와 같은 순서로 진행하셨으면 sda일겁니다.

sudo efibootmgr --create --label Ubuntu --disk /dev/sda1 --loader "\EFI\ubuntu\grubx64.efi"


경고가 뜨지만 쿨하게 무시합시다. 

이제 재부팅하면 아마 잘 될겁니다.. 적어도.. 저는 잘 됐어요...

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유