三、拷贝ubuntu操作系统的文件到新分区.
以下操作最好在维护模式下进行,就是进入ubuntu系统时在grub下选择recovery mode。本人在一般模式下试过,拷贝某些目录时报了一些错误,但是没有验证这些错误对搬迁后的系统有没有影响,就直接进入了维护模式进行搬迁。
我们看一下都有那些文件和目录需要拷贝,执行命令ls -l /,显示如下:
drwxr-xr-x 2 root root 4096 2008-06-06 08:48 bin
drwxrwxrwx 3 root root 4096 2008-06-17 09:00 boot
lrwxrwxrwx 1 root root 11 2008-06-13 18:09 cdrom -> media/cdrom
drwxr-xr-x 13 root root 14420 2008-06-17 08:29 dev
drwxr-xr-x 133 root root 12288 2008-06-17 10:18 etc
drwxr-xr-x 3 root root 4096 2008-04-28 16:51 home
drwxrwxrwx 2 root root 4096 2008-06-16 17:10 host
drwxr-xr-x 2 root root 4096 2008-04-23 01:48 initrd
lrwxrwxrwx 1 root root 33 2008-06-13 18:11 initrd.img -> boot/initrd.img-2.6.24-19-generic
drwxr-xr-x 16 root root 4096 2008-06-11 15:01 lib
drwx------ 2 root root 16384 2008-06-13 18:08 lost+found
drwxr-xr-x 5 root root 4096 2008-06-17 10:18 media
drwxr-xr-x 2 root root 4096 2008-06-13 18:12 mnt
drwxr-xr-x 5 root root 4096 2008-05-22 17:50 opt
drwxr-xr-x 2 oracle dba 4096 2008-05-05 09:45 oracle
dr-xr-xr-x 137 root root 0 2008-06-17 16:29 proc
drwxr-xr-x 18 root root 4096 2008-06-13 17:57 root
drwxr-xr-x 2 root root 4096 2008-06-13 18:55 sbin
drwxr-xr-x 2 root root 4096 2008-04-23 01:48 srv
drwxr-xr-x 12 root root 0 2008-06-17 16:29 sys
drwxrwxrwt 16 root root 4096 2008-06-17 10:55 tmp
drwxr-xr-x 13 root root 4096 2008-05-05 09:05 usr
drwxr-xr-x 15 root root 4096 2008-04-23 02:07 var
lrwxrwxrwx 1 root root 30 2008-06-13 18:13 vmlinuz -> boot/vmlinuz-2.6.24-19-generic
上边列出的文件和目录中,以下几个有特殊的用途,可以无须拷贝:
host目录 host目录实际上映射的是一个windows分区 ,这个分区下存放着ubuntu的虚拟磁盘文件。
lost+found 这个和文件系统维护有关,其下存放的是系统非法关闭后文件系统丢失的数据。
media 其他windows分区和移动磁盘一般映射到这个目录
mnt 我们将把新建的分区mount到这个目录
proc 内核维护的一个虚拟文件系统
下边我们以归档的方式拷贝所有其他文件和目录. 下边命令的参数-a表示归档方式。归档方式拷贝时会保留文件和目录的所有属性。
sudo mount /dev/sda8 /mnt
sudo cp -a /bin /mnt
sudo cp -a /boot /mnt
sudo cp -a /cdrom /mnt
sudo cp -a /dev /mnt
sudo cp -a /etc /mnt
sudo cp -a /home /mnt
sudo cp -a /initrd /mnt
sudo cp -a /initrd.img /mnt
sudo cp -a /lib /mnt
sudo cp -a /opt /mnt
sudo cp -a /oracle /mnt
sudo cp -a /root /mnt
sudo cp -a /sbin /mnt
sudo cp -a /srv /mnt
sudo cp -a /sys /mnt
sudo cp -a /tmp /mnt
sudo cp -a /usr /mnt
sudo cp -a /var /mnt
sudo cp -a /vmlinuz /mnt
sudo mkdir /mnt/media
sudo mkdir /mnt/mnt
sudo mkdir /mnt/proc
四、修改grub的配置信息
grub配置文件为/boot/grub/menu.lst ,新搬迁的系统 为 /mnt/boot/grub/menu.lst。
(如果你想沟仔对豾indows下的ubuntu,就修改/mnt/boot/grub/menu.lst文件,并在卸载后在windows下安装grub for dos)
这两个文件的主要内容为:
title Ubuntu 8.04.1, kernel 2.6.24-19-generic
root (hd0,5)/ubuntu/disks
kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=8200D1BB00D1B67F loop=/ubuntu/disks/root.disk ro quiet splash
initrd /boot/initrd.img-2.6.24-19-generic
将其改为
title Ubuntu 8.04.1, kernel 2.6.24-19-generic
root (hd0,7)
kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=b484f1e0-dc6c-40bf-9d0c-8a7bd9e080ac ro quiet splash
initrd /boot/initrd.img-2.6.24-19-generic
其中(hd0,7)新建对应新建的分区/dev/sda8; b484f1e0-dc6c-40bf-9d0c-8a7bd9e080ac表示新建分区的UUID编号.
另外可以看到删除了loop=/ubuntu/disks/root.disk,这句话指出了虚拟磁盘的文件名。搬迁后的系统不再使用虚拟文件,所以删除它。
分区的UUID编号可以通过以下方式查看: ls -l /dev/disk/by-uuid/
lrwxrwxrwx 1 root root 10 2008-06-17 16:29 1020A12220A11030 -> ../../sda1
lrwxrwxrwx 1 root root 10 2008-06-17 16:29 2E207485207455B5 -> ../../sda5
lrwxrwxrwx 1 root root 10 2008-06-17 16:29 5016-D49C -> ../../sda7
lrwxrwxrwx 1 root root 10 2008-06-17 16:29 8200D1BB00D1B67F -> ../../sda6
lrwxrwxrwx 1 root root 10 2008-06-17 16:29 b484f1e0-dc6c-40bf-9d0c-8a7bd9e080ac -> ../../sda8
五、修改fstab文件
文件路径为:/mnt/etc/fstab
将含root.disk和swap.disk的两行分别改动如下:
/dev/sda8 / ext3 defaults 0 0
/host/swap.disk none swap loop,sw 0 0
上边的第二行表示swap文件,我们需要将swap也搬迁过来,命令如下:
sudo mkdir /mnt/host
sudo cp -a /host/ubuntu/disks/swap.disk /mnt/host
至此,所有搬迁工作结束了,重新启动,试试看能进入新系统吗?
责任编辑:小草