分页: 1 / 1

[问题]请教一个挂载点转移的问题。。。

发表于 : 2008-05-22 10:58
coreX
现有2块硬盘,第一块有3个分区,其中sda1为swap,sda2为/,sda3为/home,第二块有一个分区sdb1。现“/”挂载点所在sda2分区空间不足,想把“/usr”挂载点转移到sdb1分区中(原sda2中不再保留/usr),请问有什么简捷的方法,谢谢!!

发表于 : 2008-05-22 13:14
jarlyyn
copy过去直接做个链接

发表于 : 2008-05-22 13:36
hethe
copy 过去,然后修改下fstab

发表于 : 2008-05-22 14:52
coreX
感谢ls两位的帮助,我是新手,能具体描述一下操作过程吗,谢谢。。

发表于 : 2008-05-22 15:06
hyxuzhimin
我也是新手,关注中...心里一直害怕mount命令会把系统搞坏掉。

发表于 : 2008-05-22 19:15
syrano
搜论坛

发表于 : 2008-05-22 19:31
lonelycorn
这个我不保证一定可用:
大致思路:
sudo cp /usr /media/sdb1
把/etc/fstab里面的usr那部分改成/dev/sdb1

发表于 : 2008-05-22 19:44
JangMunho
lonelycorn 写了:这个我不保证一定可用:
大致思路:
sudo cp /usr /media/sdb1
把/etc/fstab里面的usr那部分改成/dev/sdb1
我觉得这种方法一定不能用.
1、cp命令不保证文件属性的复制,这意味着你的权限将和你拷贝时的用户有关。
文件权限将彻底崩溃。
2、/etc/fstab中不只是按照设备特殊文件认设备。
3、启动时,Grub要求正确的UUID。

对于文件拷贝,应该使用tar命令,而不是cp。对于/文件系统,应该计算其新的UUID,并写入/boot/grub/menu.list。

发表于 : 2008-05-22 19:47
BigSnake.NET
以下统统用root操作

第一步复制

代码: 全选

mkdir /mnt/newusr
mount /dev/sdb1 /mnt/newusr
# 先保证 sdb1 是空的
cd /usr
tar cf - . | ( cd /mnt/newusr/ ; tar xfv - )
umount /mnt/newusr
rmdir /mnt/newusr
第二步改 fstab

代码: 全选

vim /etc/fstab
在紧接着 / 的那行, 加上
注意不要照抄

代码: 全选

/dev/sdb1        /usr         分区类型        defaults                 0    2
第三步然后启用新 /usr, 最简单的方法就是重启

第四步删掉旧的 /usr

代码: 全选

mkdir /mnt/root
mount -o bind / /mnt/root
# 现在 /mnt/root 是真的根分区
rm -rfv /mnt/root/usr
umount /mnt/root
rmdir /mnt/root

发表于 : 2008-05-22 20:11
JangMunho
BigSnake.NET 写了:以下统统用root操作

第一步复制

代码: 全选

mkdir /mnt/newusr
mount /dev/sdb1 /mnt/newusr
# 先保证 sdb1 是空的
cd /usr
tar cf - . | ( cd /mnt/newusr/ ; tar xfv - )
umount /mnt/newusr
rmdir /mnt/newusr
第二步改 fstab

代码: 全选

vim /etc/fstab
在紧接着 / 的那行, 加上
注意不要照抄

代码: 全选

/dev/sdb1        /usr         分区类型        defaults                 0    2
第三步然后启用新 /usr, 最简单的方法就是重启

第四步删掉旧的 /usr

代码: 全选

mkdir /mnt/root
mount -o bind / /mnt/root
# 现在 /mnt/root 是真的根分区
rm -rfv /mnt/root/usr
umount /mnt/root
rmdir /mnt/root
他估计还要扩大/,扩大/的操作会不会改变UUID?
那个计算分区UUID的命令我也给忘了,麻烦写一下好不?

发表于 : 2008-05-22 20:32
coreX
改 /etc/fstab那里时不用改成

代码: 全选

# /dev/sdb1
UUID=XXXXXXX    /usr           ext3    relatime        0       2
这样吗??
另外我见过这样取uuid的

代码: 全选

ls -l /dev/disk/by-uuid

发表于 : 2008-05-22 20:54
冲浪板
JangMunho 写了:
lonelycorn 写了:这个我不保证一定可用:
大致思路:
sudo cp /usr /media/sdb1
把/etc/fstab里面的usr那部分改成/dev/sdb1
我觉得这种方法一定不能用.
1、cp命令不保证文件属性的复制,这意味着你的权限将和你拷贝时的用户有关。
文件权限将彻底崩溃。
2、/etc/fstab中不只是按照设备特殊文件认设备。
3、启动时,Grub要求正确的UUID。

对于文件拷贝,应该使用tar命令,而不是cp。对于/文件系统,应该计算其新的UUID,并写入/boot/grub/menu.list。
1,想复制文件的属性?你加参数啊,具体的man、看Wiki,实在不会就mc...
btw:这个在win的ntfs分区同样做得到。

合并可没那么的复杂,只一点点,就是你把某夹子移动了,那么空出来的部分不就是成了鸡肋了?不用就浪费用就不够-否则就不移动了。比较科学的、炫耀办法是用"联合",具体的去google,懒得继续

发表于 : 2008-05-23 11:16
BigSnake.NET
JangMunho 写了:
BigSnake.NET 写了:以下统统用root操作

第一步复制

代码: 全选

mkdir /mnt/newusr
mount /dev/sdb1 /mnt/newusr
# 先保证 sdb1 是空的
cd /usr
tar cf - . | ( cd /mnt/newusr/ ; tar xfv - )
umount /mnt/newusr
rmdir /mnt/newusr
第二步改 fstab

代码: 全选

vim /etc/fstab
在紧接着 / 的那行, 加上
注意不要照抄

代码: 全选

/dev/sdb1        /usr         分区类型        defaults                 0    2
第三步然后启用新 /usr, 最简单的方法就是重启

第四步删掉旧的 /usr

代码: 全选

mkdir /mnt/root
mount -o bind / /mnt/root
# 现在 /mnt/root 是真的根分区
rm -rfv /mnt/root/usr
umount /mnt/root
rmdir /mnt/root
他估计还要扩大/,扩大/的操作会不会改变UUID?
那个计算分区UUID的命令我也给忘了,麻烦写一下好不?
没说要扩大 / 啊.. 只是把/usr搬家罢了
只要文件还在, 出什么错都可以修好的
PS: UUID 查询

代码: 全选

ls -l /dev/disk/by-uuid/

发表于 : 2008-05-23 11:19
BigSnake.NET
coreX 写了:改 /etc/fstab那里时不用改成

代码: 全选

# /dev/sdb1
UUID=XXXXXXX    /usr           ext3    relatime        0       2
这样吗??
另外我见过这样取uuid的

代码: 全选

ls -l /dev/disk/by-uuid
option 用 default 就可以了
type 按实际而定, UUID 方式 和 /dev/sd? 方式是任选的(硬盘应该没有什么顺序问题, 如果有很多硬盘建议用uuid)

发表于 : 2008-05-23 13:09
lhw828
我的也是双硬盘,没有这么复杂啊