十分复杂啊 我只给出思路和步骤 具体的命令希望你能自己查询学习, 呵呵
分区迁移的步骤如下
前期准备
1 使用livecd启动进入非本地的系统环境进行操作 此处假设你的 / 分区是 /dev/sda1 里面包含了 /home /usr , 文件系统格式是ext3 , 并且确保新的磁盘分区有足够的空间保存这两个目录下的文件 ,另外 如果你的磁盘 /dev/sda无法腾出新分区 ,就需要一块外置的移动硬盘来保存 /home /usr下的文件
我们假设情况如上 仅有一个/ 分区 ,没有空闲空间,你找来了移动硬盘来暂存数据 假设移动硬盘在 ubuntu livecd环境中 识别为 /dev/sdb 并有一个足够大的分区 /dev/sdb1 可以存放 /homt /usr 里面的文件
开始调整
1 启动进入 livecd环境 mount /dev/sda1到 /mnt/oldOS [olsOS需要自行创建] 此时将本机硬盘挂载到 /mnt/oldOS上面 然后 mouont /dev/sdb1 /mnt/tempdata [tempdata自行创建]
2 备份数据 使用如下命令 tar cvf /mnt/tempdata/home.tar /mnt/oldOS/home/* 和 tar cvf /mnt/tempdata/usr/tar /mnt/oldOS/usr/*
3 调整分区大小 [重点]
卸载/dev/sda1 umount /mnt/oldOS
检查分区 e2fsck -f /dev/sda1
然后先用 resize2fs 将当前分区调整到你需要的大小。比如你的 / 分区 30 G,你想最终缩小到 10G,那么你可以 resize 到 9 G(比 10G 小一点,防止分区的时候被截掉尾巴)。
用 fdisk 删除 / 分区,然后以较小的尺寸 (9G) 重建该分区。重建的时候注意起始参数(柱面、磁道或者LBA块什么的)要保持不变。现在你的分区 10G,文件系统 9G。
再用 resize2fs 将文件系统扩大到分区允许的最大值。这个似乎是 resize2fs 不加参数的时候的默认行为。
以上命令比较繁琐 ,建议仔细阅读man文档
此时 你的/分区调整完毕 继续用fdisk 分区调整出来的空间为 /home 和 /usr
完毕后保存退出 重启 使分区表起效
重启后仍然进入livecd环境 恢复数据 假设新的分区对应为 /home /dev/sda2 /usr /dev/sda3
mount /dev/sda2 /mnt/newOS/home
mount /dev/sda3 /mnt/newOS/usr
mount /dev/sdb1 /mnt/temp
然后恢复数据
tar xvpf /mnt/temp/home.tar -C /mnt/newOS/home
tar xvpf /mnt/temp/usr.tar -C /mnt/newOS/usr
最后 编辑你老系统的 /etc/fstab文件 添加
/dev/sda2 /home ext3 defaults,noatime 0 0
/dev/sda3 /usr ext3 defaults,noatime 0 0
这两行
完成 重启 取出cd 进入系统
千万别用PQ之类的调整分区
◆◆
评论读取中....
请登录后再发表评论!
◆◆
修改失败,请稍后尝试