很多时候服务器的功能没确定或是分区的时候没做好规划,导主机没用多久根分区就满了,管理员要不停的清空不用的数据。使得管理员头疼不已,现在有方法可以解决这个问题。以下是思想与步骤。
1:创建LV
2:挂载LV,数据迁移
3:查看迁移目录与数据
4:定制initrd
1),增加驱动
2),修改init,创建LV0
3),复制LVM相关命令与配置文件
5:复盖原有initrd.img
6 : 修改grub.conf
7 : 修改 fstab
fdisk /dev/sda
partprobe /dev/sda
pvcreate /dev/sda7
vgcreate vg0 /dev/sda7
lvcreate -L 18G -n lv0 vg0
df -h
mkfs.ext3 /dev/vg0/lv0
mkidr /lv0
mount /dev/vg0/lv0 /lv0
tar cf - bin dev etc lib opt root sbin tftpboot var | tar xf - -C /lv0/
mkdir /lv0/{boot,home,media,misc,mnt,proc,selinux,srv,sys,tmp,usr}
chmod 1777 /lv0/tmp
mkdir initrd
cd initrdfdisk /dev/sda
partprobe /dev/sda
pvcreate /dev/sda7
vgcreate vg0 /dev/sda7
lvcreate -L 18G -n lv0 vg0
df -h
mkfs.ext3 /dev/vg0/lv0
mkidr /lv0
mount /dev/vg0/lv0 /lv0
tar cf - bin dev etc lib opt root sbin tftpboot var | tar xf - -C /lv0/
mkdir /lv0/{boot,home,media,misc,mnt,proc,selinux,srv,sys,tmp,usr}#这个要根据自己/ 根目录所存放的文件来检查一下,不要少文件夹了。
chmod 1777 /lv0/tmp
mkdir initrd
cd initrd
ls
mkinitrd initrd-$(uname -r).img $(uname -r) #复制initrd本机驱动IMG
ll initrd-2.6.18-194.el5.img
ll /boot/initrd-2.6.18-194.el5.img
zcat initrd-2.6.18-194.el5.img | cpio -id #解压 initrd-2.6.18-194.el5.img
ls
rm -rf initrd-2.6.18-194.el5.img
vim init
修改解压出来的init文件添加以下内容
lvm vgscan --ignorelockingfailure
lvm vgchange -ay --ignorelockingfailure vg0
resume /dev/vg0/lv0
mkrootdev -t ext3 -o defaults,ro /dev/vg0/lv0
cp -p /sbin/lvm sbin/
cp -r /etc/lvm/ etc/
find | cpio -H newc -o > ../initrd.img
cd ..
gzip -9 initrd.img
cp /boot/initrd-2.6.18-194.el5.img /boot/initrd-2.6.18-194.el5.img.bak
cp initrd.img.gz /boot/initrd-2.6.18-194.el5.img
vi /boot/grub/grub.conf
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/vg0/lv0 rhgb quiet selinux=0
initrd /initrd-2.6.18-194.el5.img
vi /lv0/etc/fstab
/dev/vg0/lv0 / ext3 defaults 1 1
LABEL=/usr /usr ext3 defaults 1 2
8 :reboot 测试
转载于:https://blog.51cto.com/myjiang/1034670