[리눅스(우분투) 시스템 하드 복사]

임광일. 2012. 04. 06.


기존 디스크가 두개 있는 시스템에

디스크를 하나 더 붙인 후 추가한 디스크에 시스템을 복사하고자함

sda는 데이터 디스크이고, sdb가 시스템 디스크

시스템 : Ubuntu 11.04, 2.6.38-13-generic x86_64


작업한 과정을 기억나는대로 순서대로 재구성한 내용입니다.

세밀한 설명 없이 러프하게 정리해놨습니다.

아마 맞는 내용이겠지만 빠진 부분이 있을 수도 있습니다.

해보고 안되는 부분은 각자 찾아서 작업 하시길


하드 추가하기 전 디스크 정보

# sudo -i

# fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes

Disk identifier: 0xae69ae69


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       60801   488384001   83  Linux


Disk /dev/sdb: 146.8 GB, 146815737856 bytes

Disk identifier: 0x000e4536


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1          13       96256   82  Linux swap / Solaris

Partition 1 does not end on cylinder boundary.

/dev/sdb2   *          13          25       97280   83  Linux

Partition 2 does not end on cylinder boundary.

/dev/sdb3              25       17850   143179776   83  Linux


추가 디스크를 붙이니, 아래와 같이 기존 sdb는 sdc로 옮겨지고 추가된 디스크는 sdb로 잡힘

# fdisk -l


Disk /dev/sda: 500.1 GB, 500107862016 bytes

Disk identifier: 0xae69ae69


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       60801   488384001   83  Linux


Disk /dev/sdb: 120.0 GB, 120034123776 bytes

Disk identifier: 0xed18e86a


   Device Boot      Start         End      Blocks   Id  System


Disk /dev/sdc: 146.8 GB, 146815737856 bytes

Disk identifier: 0x000e4536


   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1               1          13       96256   82  Linux swap / Solaris

Partition 1 does not end on cylinder boundary.

/dev/sdc2   *          13          25       97280   83  Linux

Partition 2 does not end on cylinder boundary.

/dev/sdc3              25       17850   143179776   83  Linux


fdisk로 sdb를 파티션 나누고 파일시스템 생성

# fdisk /dev/sdb

# mkswap /dev/sdb1

# mkfs.ext4 /dev/sdb2

# mkfs.ext4 /dev/sdb3

# fdisk -l


Disk /dev/sda: 500.1 GB, 500107862016 bytes

Disk identifier: 0xae69ae69


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       60801   488384001   83  Linux


Disk /dev/sdb: 120.0 GB, 120034123776 bytes

Disk identifier: 0xed18e86a


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1          12       96358+  83  Linux

/dev/sdb2              13          24       96390   83  Linux

/dev/sdb3              25       14593   117025492+  83  Linux


Disk /dev/sdc: 146.8 GB, 146815737856 bytes

Disk identifier: 0x000e4536


   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1               1          13       96256   82  Linux swap / Solaris

Partition 1 does not end on cylinder boundary.

/dev/sdc2   *          13          25       97280   83  Linux

Partition 2 does not end on cylinder boundary.

/dev/sdc3              25       17850   143179776   83  Linux


sdb2 마운트 후 /boot 데렉토리 복사

# mount -t ext4 -o discard /dev/sdb2 /mnt

# cd /mnt/

# cp -avx /boot/* ./

# cd /; umount /dev/sdb2


sdb3 마운트 후 복사하지 않고 생성만 하는 디렉토리 및 링크 생성

(13.04에서는 ln -s lib lib64 없어도 됨, 13.04에서는 /lib /lib64가 링크가 아닌 실제 파일로 따로 존재)

# mount -t ext4 -o discard /dev/sdb3 /mnt

# cd /mnt/

# cp -av /initrd.img /initrd.img.old /vmlinuz /vmlinuz.old ./

# ln -s lib lib64

# mkdir boot mnt proc selinux sys


/ 파일 시스템 디렉토리 복사

(13.04에서는 디렉토리가 약간 다름. 잘 확인해서 작업)

# cp -avx /bin /build /cdrom /dev /etc /home /lib /lib32 /media /opt /root /sbin /srv /temp /tmp /usr /var ./


dev 파일시스템 링크 수정

(13.04에서는 이부분 필요 없음. /dev/에 ln -s sdb3 root 와 같은 링크 자체가 필요 없음)

# cd /mnt/dev/

# rm -f root

# ln -s sdb3 root


fstab 파일 수정

# blkid 

/dev/sda1: UUID="21d93731-466c-4aa7-8d69-99c92385bc7f" TYPE="ext4" 

/dev/sdb1: UUID="bcc1e001-07cd-4faa-95e8-e9c0d058a2b9" TYPE="swap" 

/dev/sdb2: UUID="ca0adb92-0bed-4def-bd94-101cc681959f" TYPE="ext4" 

/dev/sdb3: UUID="d0dc267e-258b-4d33-81d2-614654fe1e72" TYPE="ext4" 

/dev/sdc1: UUID="63008eba-57ed-4775-ac32-9ccb43c19bc5" TYPE="swap" 

/dev/sdc2: UUID="3ac66cec-4707-4687-b1a5-4351588622ad" TYPE="ext4" 

/dev/sdc3: UUID="ec2a8ab5-6daf-49bb-a745-0d07c4a7b795" TYPE="ext4" 

# vi /mnt/etc/fstab

---- /mnt/etc/fstab ---------------------------------------------------------------------------------

proc                                            /proc               proc    nodev,noexec,nosuid 0   0

UUID=d0dc267e-258b-4d33-81d2-614654fe1e72       /                   ext4    errors=remount-ro   0   1

UUID=ca0adb92-0bed-4def-bd94-101cc681959f       /boot               ext4    defaults            0   2

UUID=bcc1e001-07cd-4faa-95e8-e9c0d058a2b9       none                swap    sw                  0   0

UUID=21d93731-466c-4aa7-8d69-99c92385bc7f       /home/kilim/DATA    ext4    defaults            0   0

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


sdb3 언마운트 후 sdb2 다시 마운트

# cd /; umount /dev/sdb2

# mount -t ext4 -o discard /dev/sdb2 /mnt


grub 설정 변경 및 MBR에 부트로더 생성

# cd /mnt/grub

# perl -p -i -e "s/3ac66cec-4707-4687-b1a5-4351588622ad/ca0adb92-0bed-4def-bd94-101cc681959f/g" grub.cfg 

# perl -p -i -e "s/ec2a8ab5-6daf-49bb-a745-0d07c4a7b795/d0dc267e-258b-4d33-81d2-614654fe1e72/g" grub.cfg

# grub-install --root-directory=/mnt /dev/sdb


sdb2 언마운트 후 재부팅

# cd /; umount /dev/sdb2

# sync

# shutdown -r now


재부팅 과정에서 CMOS 세팅에서 부팅 디스크를 교체한 디스크로 세팅




Posted by 광장군
,