从目录创建分区

从目录创建分区

我有一个 Linux 系统,磁盘/dev/sda1上只有一个带有挂载点的分区。安装后可以创建分区吗?/dev/sda/

/dev/sda2例如使用挂载点创建/home/

我怎样才能从命令行实现它?它在物理上是如何实现的? (如果我稍后删除,/dev/sda1它会删除我的/home/目录,因为它是 的子目录吗/?我希望这个分区能够保留下来,并且有一天我可以安装新系统。

答案1

要在已经分区的系统中创建新分区,您应该从 livecd 开始,然后使用gparted收缩sda1分区(我假设占用磁盘上的所有空间,不包括交换),然后在创建的可用空间中创建一个新分区。

当然可以在命令行上完成,但是格帕特处理许多难以追踪的细节。

创建分区后,您应该将当前主目录的内容移动到新分区上,然后修改/etc/fstab以将新分区挂载到 上/home

这是将文件从 sda1 实际移动到 sda2 的一种方法。所有这些都是以 root 身份完成的:

  1. 进行备份。您是否尝试过恢复备份?在您这样做之前,它们不是备份。并确保它们存储在另一台计算机(未安装)上,或存储在已安装的外部驱动器上目前已分离。重点是,rm -Rf /不应该删除它们。也不应该mkfs放在错误的分区上。
  2. 在开始之前,请阅读所有步骤并确保您完全理解它们。除了备份。如果您还没有这样做,您应该立即这样做。
  3. 在 sda2 上创建一个文件系统。类似于mkfs.ext4 /dev/sda2(假设您对 ext4 没问题,这可能是您当前在 sda1 上使用的)。
  4. 安装sda2到 /home 以外的地方。例如,您可以mkdir /mnt/new_home然后mount -text4 /dev/sda2 /mnt/new_home
  5. 确保没有用户登录,否则他们可能会在您执行此操作时尝试更改其文件。
  6. 复制文件。首先,通过执行确认 /home 没有任何隐藏内容(只有点条目应该是.和) 。如果是这样,您需要单独复制(不会匹配它们,并且不会执行您想要的操作):..ls -l /home*.*cp -a /home/* /mnt/new_home/
  7. 如果复制有任何错误,请立即停止。
  8. 卸载 sda2: umount /mnt/new_home.现在就这样做,以确保您不会意外地用核武器攻击错误的目标。
  9. 这就是不归路了。rm -Rf /home/*。绝对地、积极地、不要在这里试试/home/.*。另外,请确保不要意外地在该路径中添加空格。在输入此命令时,您至少应该有点害怕,这是一个可怕的命令,您应该三次检查您是否已正确输入它(否则,您将需要该备份)。
  10. 如果 /home 中有任何点文件或文件夹,请按名称删除它们。请记住,你必须不是曾经跑过rm -Rf .*。这会匹配..,这意味着父目录,最终导致文件系统完全破坏(尽管某些版本rm可能拒绝这样做,但您不应该依赖于此)。
  11. 编辑/etc/fstab并添加新的 sda2 分区的条目,如下所示:/dev/sda2 /home ext4 relatime,user_xattr,errors=remount-ro 0 2。如果您愿意,您可以使用不同的标志,这些是我使用的。另外,该pass数字 (2) 假设您在 sda 上只有两个文件系统,这似乎很可能,因为这是 sda2。
  12. 最后,安装你的新家mount /home。这应该运行没有错误,并且您的文件应该在那里。如果出现错误,请检查 fstab 行。如果您收到有关挂载点下的文件被隐藏的警告,则说明您没有在最后几个步骤中删除所有内容:卸载/home并删除其余部分。如果文件丢失,请参阅第一步。

答案2

每个分区都是磁盘的一个单独区域。

如果您留下了一些未分区的空间,您可以使用fdiskcfiskparted任何其他分区管理器在其中创建一个新分区。否则,您将需要缩小现有文件系统以为新文件系统腾出空间。当今的文件系统不支持挂载时收缩),因此您需要在从 Live CD/USB(例如分手现场CD)。

创建单独的分区后/home

  1. 在其上创建一个文件系统。此操作可以与一些工具的分区创建结合起来。
  2. 手动将新文件系统挂载到空目录位置,例如mount /dev/sda2 /media/new_home.
  3. 将文件从新/home的文件系统移至新的文件系统:

    mv /home/* /media/new_home
    

    您应该在未登录帐户的情况下执行此操作:无论是通过文本模式下的 root 登录提示,还是通过 Live CD。

  4. 卸载新的文件系统:umount /media/new_home
  5. 编辑该文件/etc/fstab以添加新分区的条目。类似于(位于 的条目下方/):

    /dev/sda2  /home  ext4  errors=remount-ro,acl  0 2
    

    /dev/sda2您应该使用 UUID 或标签,而不是在添加第二个磁盘时可能会发生变化。看删除分区后分区标签会发生什么变化?

  6. 如果在 Live CD 上,请重新启动。否则,运行mount /home.

典型的 Linux 系统上存在哪些挂载点?可能是有用的背景。 

相关内容