一直想把分区管理方式转为lvm,趁着工作比较空闲搞定了,期间遇到了不少问题,以此记录。

我之前的分区如下:

sda1 –> /
sda5 –> /swap
sda6 –> /tmp (无厘头的tmp分区)
sda7 –> /home

目标分区形式如下:

sda1 –> /boot (除非是用grub2,不然grub是没法安装在lvm的逻辑卷上的)
sda2 –> archVG — lvroot (除boot分区外,剩余空间全部做成一个pv,然后划出swap和/分区)
|– lvswap

开始动工:

1、备份现有的archlinux数据

1)、备份/分区

a.先是用archlinux的img镜像做了一个U盘启动盘,进入之后将sda1 挂载到/mnt下面,插上移动硬盘,然后开始tar:

tar pmjcf root.tar.bz2 /mnt

b.经过漫长的等待,打包结束。home分区的数据依法打包:

tar pmjcf home.tar.bz2 /mnt

c.数据已经打包并备份到移动硬盘,接下来就是重新分区了,cfdisk、fdisk之类的工具任你挑,分好两个区:sda1(100M)和sda2(剩余所有空间,其实我还留了30G,以后可以装gentoo之类的os)
d.进行lvm操作,创建pv、vg、lv。( 可以参考这里:http://wiki.archlinux.org/index.php/LVM_(简体中文) )

# modprobe dm-mod (加载lvm所需模块)
# pvcreate /dev/sda2 (创建物理卷组)
# vgcreate archVG /dev/sda2 (archVG只是卷组的名称,可随意)
# lvcreate -L XXXG archVG -n lvlroot (在archVG卷组上创建/分区的逻辑卷lvroot )
# lvcreate -C y -L 4G archVG -n lvswap (创建交换分区的逻辑卷lvswap )

注意:如果你在这期间重启了电脑,那么进入启动盘后,卷组是未激活的,需要”vgchange -a y”激活之后,才能看到之前创建的逻辑卷。
e.格式化分区。

# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/mapper/archVG-lvroot

f.恢复之前备份的数据。
将lvroot挂载到mnt,把root.tar.bz2拷贝到/mnt目录下面,然后解压:

# mount -t ext4 /dev/mapper/archVG-lvroot /mnt
# cp root.tar.bz2 /xxx /mnt
# cd /mnt; tar pmxf root.tar.bz2

将boot目录下的东东全部mv到/dev/sda1下。(这里就略了,mount到另外一个地方再mv过去即可)
g.重编译内核(为了添加lvm支持)与重装grub。(参考这里:http://wiki.archlinux.org/index.php/重装GRUB )

# cd /
# mount -t ext4   /dev/mapper/archVG-lvroot /mnt
# mount -t ext4   /dev/sda1   /mnt/boot
# mount -t proc   proc        /mnt/proc
# mount -t sysfs  sys         /mnt/sys
# mount -o bind   /dev        /mnt/dev
# chroot /mnt /bin/bash

# vim /etc/rc.conf ( 修改USELVM=”no”为USELVM=”yes” )
# vim /etc/mkinitcpio.conf ( 在HOOKS的filesystems前面加入lvm2 )
# pacman -U /var/cache/pacman/pkg/kernel26-2.6.xx.x-xxx.pkg.tar.gz

(这里图方便,安装的时候会根据mkinitcpio.conf的设置编译加入lvm2模块)

然后根据目前的分区情况编辑/etc/fstab和/boot/grub/menu.lst。(略)
重装grub。

# grub-install /dev/sda

至此,整个过程就结束了,reboot系统吧。在进入系统之前,还需要fsck一下分区,再次reboot就能顺利进入系统了。

Tags: , ,

今天开机自检硬盘的时候报错了,所以想到了做个备份,以防万一:

tar -cvpzf /media/xx/root-backup.tgz –exclude=/dev –exclude=/media –exclude=/mnt –exclude=/proc –exclude=/sys –exclude=/tmp –exclude=/var/tmp –exclude=/lost+found / (/和home在同一分区)

现在只给archlinux分了约40G的容量,其余都归了vista。随着答辩的结束,我也在考虑硬盘的分区问题,首先还得购买一款移动硬盘:

1. 丢弃vista,换上mac os + archlinux

2. 保留vista,同时mac os + archlinux

乘着这段时间,好好折腾一番。

Tags: ,