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

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
coreX
帖子: 3
注册时间: 2008-05-22 10:34

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

#1

帖子 coreX » 2008-05-22 10:58

现有2块硬盘,第一块有3个分区,其中sda1为swap,sda2为/,sda3为/home,第二块有一个分区sdb1。现“/”挂载点所在sda2分区空间不足,想把“/usr”挂载点转移到sdb1分区中(原sda2中不再保留/usr),请问有什么简捷的方法,谢谢!!
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

#2

帖子 jarlyyn » 2008-05-22 13:14

copy过去直接做个链接
头像
hethe
帖子: 3666
注册时间: 2005-08-01 9:14

#3

帖子 hethe » 2008-05-22 13:36

copy 过去,然后修改下fstab
Gedanken ohne Inhalt sind leer .Anschauungen ohne Begriffe sind blind.
头像
coreX
帖子: 3
注册时间: 2008-05-22 10:34

#4

帖子 coreX » 2008-05-22 14:52

感谢ls两位的帮助,我是新手,能具体描述一下操作过程吗,谢谢。。
头像
hyxuzhimin
帖子: 249
注册时间: 2008-05-09 14:14

#5

帖子 hyxuzhimin » 2008-05-22 15:06

我也是新手,关注中...心里一直害怕mount命令会把系统搞坏掉。
头像
syrano
帖子: 4313
注册时间: 2007-10-06 18:40

#6

帖子 syrano » 2008-05-22 19:15

搜论坛
头像
lonelycorn
帖子: 438
注册时间: 2007-05-20 18:44
来自: 唐山,河北,中国
联系:

#7

帖子 lonelycorn » 2008-05-22 19:31

这个我不保证一定可用:
大致思路:
sudo cp /usr /media/sdb1
把/etc/fstab里面的usr那部分改成/dev/sdb1
我逗无了奈了……
HP的本跑ubuntu还得把我折腾死。
显卡、无线/有线网卡、声卡、键盘……

代码: 全选

while :
do
  work_hard
done
头像
JangMunho
帖子: 1347
注册时间: 2006-01-18 12:55
来自: 也许真的没有人理解

#8

帖子 JangMunho » 2008-05-22 19:44

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。
MacBook Pro 15" User
Cocoa Programmer
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#9

帖子 BigSnake.NET » 2008-05-22 19:47

以下统统用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
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
JangMunho
帖子: 1347
注册时间: 2006-01-18 12:55
来自: 也许真的没有人理解

#10

帖子 JangMunho » 2008-05-22 20:11

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的命令我也给忘了,麻烦写一下好不?
MacBook Pro 15" User
Cocoa Programmer
头像
coreX
帖子: 3
注册时间: 2008-05-22 10:34

#11

帖子 coreX » 2008-05-22 20:32

改 /etc/fstab那里时不用改成

代码: 全选

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

代码: 全选

ls -l /dev/disk/by-uuid
头像
冲浪板
论坛版主
帖子: 7513
注册时间: 2007-05-06 8:19

#12

帖子 冲浪板 » 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,懒得继续
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#13

帖子 BigSnake.NET » 2008-05-23 11:16

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/
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#14

帖子 BigSnake.NET » 2008-05-23 11:19

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)
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
lhw828
帖子: 2797
注册时间: 2007-03-15 16:58
来自: 湖北武汉
联系:

#15

帖子 lhw828 » 2008-05-23 13:09

我的也是双硬盘,没有这么复杂啊
回复