很久以前,我在上网本上安装了 Ubuntu,我不记得我做了什么 - 但我希望我或多或少地使用了默认设置。现在我有两个分区(一个ext3
和一个ext4
,第一个分区更大,除了一个lost+found
空目录外,几乎没有使用过)。什么(除了我的愚蠢,这可能是原因 - 例如,我希望它是我的,但不知何故忘记告诉安装程序这样做,这并非不可能/home
)可能是导致这种奇怪情况的原因?如果这个分区不是真的必要(可能是这种情况 - 无论如何它都没有被默认安装),将我的分区移动到/home
那里的最佳方法是什么?我想这应该足够了:
- 我将该分区安装在下面
/mnt
或任何地方cp -rp /home/*
。 - 我用
gparted
它来做我的新/home
。 - 我启动并检查一切是否正常。
- 我手动卸载它来手动清理旧的
/home
。
我错过了什么?
编辑:正如 Eric Carvalho 所问,这是我的输出fdisk -l
:
$ LANGUAGE=C sudo fdisk -l
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x05c9ff3a
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 409599 203776 7 HPFS/NTFS/exFAT
/dev/sda2 417690 285075455 142328883 7 HPFS/NTFS/exFAT
/dev/sda3 285075456 323862527 19393536 7 HPFS/NTFS/exFAT
/dev/sda4 323864574 488396799 82266113 5 Extended
/dev/sda5 323864576 328058879 2097152 82 Linux swap / Solaris
/dev/sda6 328060928 449107698 60523385+ 83 Linux
/dev/sda7 449107968 486324223 18608128 83 Linux
/dev/sda8 486326272 488396799 1035264 82 Linux swap / Solaris
并且df -h
(我猜这或多或少是不相关的,因为该分区默认是卸载的):
$ LANGUAGE=C df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda7 18G 16G 1,1G 94% /
udev 488M 12K 488M 1% /dev
tmpfs 198M 876K 198M 1% /run
none 5,0M 0 5,0M 0% /run/lock
none 495M 224K 495M 1% /run/shm
答案1
/dev/sda7
是你的18GB/
分区,并且/dev/sda6
你说的58GB分区是空的。
为“root”账户设置密码:打开终端(++ Ctrl)并运行,然后输入“root”的密码。AltT
sudo passwd root
重启电脑,在登录界面按Ctrl+ Alt+F1打开文本控制台,以 root 身份登录(用户名:root,密码:”您在步骤 1 中输入的那个“)。
创建临时目录 (
mkdir /tmp/home
) 并挂载新的主分区 (mount /dev/sda7 /tmp/home
)。将主目录移动到新位置:
mv /home/* /tmp/home/
。获取新家的UUID:
blkid /dev/sda6
。更新 fstab:
nano /etc/fstab
。将以下内容添加到末尾:UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /home ext4 defaults 0 2
。将 UUID 替换为您在步骤 5 中获得的 UUID。卸下新家:
umount /tmp/home
。在正确的位置安装新家:
mount /home
。从文本控制台注销(
exit
),返回图形控制台(++Ctrl或)并使用您的帐户登录。AltF7F8锁定 root 帐户:打开终端并运行
sudo passwd -l root
。
完毕。
答案2
由于您无法在登录时卸载主页,我认为最简单的选择是从实时 CD 启动并执行类似以下操作:
挂载新的主分区(我将假设在/mnt/new
其余的答案中)和根分区(旧主分区在哪里)(在/mnt/old
)。
sudo mkdir /mnt/new
sudo mkdir /mnt/old
sudo mount -t ext4 /dev/sda7 /mnt/old
sudo mount -t ext3 /dev/sda6 /mnt/new
安装两者后,您可以从旧的移动到新的:
sudo mv /mnt/old/home /mnt/new
在根磁盘上创建一个空的主目录(挂载点):
sudo mkdir /mnt/old/home
在我们的根分区上编辑/etc/fstab
以包含新的主分区:
sudo nano /mnt/old/etc/fstab
include:
/dev/sda6 /home ext3 defaults 0 2
注意:如果不确定,请检查您的 sda6 分区是否为 ext3(根据您问题中的文字,我使用了 ext3)。
取出 CD 并重新启动。它应该可以正常工作!
我建议进行一些改进:
当您这样做时,您有 2 个交换分区,但我认为这不是很有用,因此您可以删除一个......(gparted 可以做到这一点 - 您必须禁用交换并删除分区并再次启用交换 - 在 fstab 中检查是否正确)。
如果您将来有机会包含新磁盘(我总是认为有机会),我认为使用UUID=uuid_of_the_partition
而不是/dev/sda6
在 fstab 中会更安全:
UUID=uuid-of-your-sda6 /home ext3 defaults 0 2
即使磁盘被移动到接口上的另一个端口,UUID 也不会改变,因此您始终会挂载正确的磁盘。使用 /sda,如果您包含一个磁盘并更改接口中实际磁盘的位置,您很有可能将其名称更改为 sdb,并且您的主磁盘将无法挂载(例如,在使用 USB 外部磁盘时非常常见)。要查找分区的 uuid,在以正常方式启动时(没有实时 CD),您可以发出ls -l /dev/disk/by-uuid
,您将看到 uuid 作为实际设备的符号链接。如果您愿意,另一种方法是使用gparted
并查看分区的信息。
答案3
您的复制命令不会复制特殊文件。cpio 稍好一些。当我从一台计算机搬到另一台计算机时,我使用了它。有些人改用 rsync:参见拥抱 Ubuntu 博客。
cd /home/ find . -depth -print0 | cpio --null --sparse -pvd /mnt/
如果您已登录(步骤 4),则无法卸载 /home。如果您不按照以下说明的步骤操作,则必须在恢复模式下执行此操作帮助 Ubuntu。