ham*_*fzm 67 command-line partitioning swap
我只能通过终端访问服务器,不能使用 GParted 等图形工具!
我想从根的一部分(大约 768mb)创建一个新分区以进行交换。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda 20G 1.3G 18G 7% /
udev 10M 0 10M 0% /dev
tmpfs 199M 4.9M 194M 3% /run
tmpfs 100M 12K 100M 1% /run/user
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
Run Code Online (Sandbox Code Playgroud)
tot*_*tti 46
如果安装了存储设备上的任何分区,则无法缩小/编辑分区。因此,为了卸载和编辑根文件系统,需要关闭操作系统。然后启动到实时系统并按照其他答案中的描述编辑分区。
作为创建整个分区的替代方案,交换文件提供了动态改变其大小的能力,并且更容易完全删除。交换文件可以热插拔。即可以在不卸载/关闭操作系统的情况下添加和删除。
创建一个 512 MB 的文件,名为/swapfile. 这将是我们的交换文件。
fallocate -l 512M /swapfile
Run Code Online (Sandbox Code Playgroud)
或者
dd if=/dev/zero of=/swapfile bs=1M count=512
Run Code Online (Sandbox Code Playgroud)设置正确的权限(因为全局可读的交换文件是一个巨大的本地漏洞):
chmod 600 /swapfile
Run Code Online (Sandbox Code Playgroud)创建正确大小的文件后,将其格式化为交换:
mkswap /swapfile
Run Code Online (Sandbox Code Playgroud)激活交换文件:
swapon /swapfile
Run Code Online (Sandbox Code Playgroud)编辑/etc/fstab并为交换文件添加一个条目:
/swapfile none swap defaults 0 0
Run Code Online (Sandbox Code Playgroud)更多详情请见arch linux wiki。
Lui*_*ado 39
首先很重要的是要知道,如果您正在使用它,则无法调整大小以缩小根分区(这称为在线缩小)。您只能在线种植它。该resize2fs命令支持这一点。我将假设以下内容:
有两种类型的分区可以调整大小,LVM 分区或逻辑卷管理器分区,它们支持自星系创建以来的在线调整大小(缩小/增长)和我们大多数人使用的标准分区。目前唯一一个几乎 100% 支持完全在线调整大小(收缩/增长)的是 btrfs 文件系统(仍在开发中)。我将解释如何做我们大多数人在 ext4 文件系统中使用的普通分区。
要增加您的分区,您可以在安装根目录的情况下进行。要做到这一点,只需执行以下操作:
sudo resize2fs /dev/sda1
Run Code Online (Sandbox Code Playgroud)
如果您已经准备好合并的空白空间。之后我建议重新启动以使更改正确生效。上面的命令将调整到允许的最大值。如果您希望调整到特定大小,只需在最后添加大小:
sudo resize2fs /dev/sda1 25G
Run Code Online (Sandbox Code Playgroud)
请注意,如果要指定 25.4 GB,则不能使用“.”。你需要减少一个计量单位。在这种情况下,从 GB 到 MB,所以它看起来像这样:
sudo resize2fs /dev/sda1 25400M
Run Code Online (Sandbox Code Playgroud)
这样你就会有一个25.4G的分区
缩小分区是一个两步过程,包括:
在减少文件系统的容量之前,您需要减少块设备的大小(可以是分区或逻辑卷)。由于这不适用于任何 ext* 文件系统,因此您将无法将其从 20 GB 缩小到 19.5 GB 以创建 500 MB 交换文件系统。
甚至 Ext4 也不支持在线收缩。如果您尝试这样做,您将获得以下信息:

据我所知,你唯一的赌注是:
在同一台服务器上安装另一个 Ubuntu 版本(在另一个分区上),然后可以用来缩小原始 Ubuntu 服务器的根分区。
使用您实际想要的大小从头开始安装 Ubuntu 服务器
使用 Ubuntu Server Live Image 调整分区大小。对于这种情况,您需要进入此屏幕:

然后选择调整大小选项,如上图所示。从那里您将选择新的尺寸,因为从这里您可以卸载该单元并根据需要缩小它。
作为额外的帮助,gparted 文件系统支持http://gparted.org/features.php,它提供了一个非常详细的支持列表,并包括它们是否具有完整的在线调整大小。Btrfs 就是其中之一。
答案取决于您是否可以卸载要缩小的分区。在您的情况下,您可能无法卸载分区。在 Linux (UNIX/MAC OS) 中,挂载分区是指使用文件系统并将其映射到挂载点(在您的情况下/)。卸载意味着您停止使用文件系统,并删除到挂载点的映射。您无法卸载包含正在运行的操作系统的文件系统。
如果分区可以卸载
假设您想在/dev/sda4挂载到/data. 它当前包含音乐和电影或类似内容,因此您可以暂时卸载它。您想创建一个 4GB 的交换。
sudo umount /dev/sda4
Run Code Online (Sandbox Code Playgroud)
卸载分区。
sudo resize2fs /dev/sda4 196G
Run Code Online (Sandbox Code Playgroud)
假设有足够的空间,将 ext4 文件系统的大小调整为 196 GB。现在,您必须缩小分区。我目前相信您需要使用cfdisk删除现有分区,并在其位置重新创建一个较小的分区。然后,您还可以为交换创建一个新分区。
sudo cfdisk /dev/sda
Run Code Online (Sandbox Code Playgroud)
会给你一个基于文本的 gui 来检查你的分区表。我会建议你print在那个时候把分区表放到一个文件或屏幕上,并记下当前的配置作为备份。然后您可以选择/dev/sda4和delete分区。在它的位置,free space将显示。用于new在其位置创建一个 196 GB 的新分区,并将类型设置为 ext4。然后,移至尾随可用空间并创建类型为 的 4GB 交换分区swap。注意:我没有测试这些命令,因为我现在不能玩我/的。
如果分区无法卸载
您不能缩小已安装的 ext3/4 分区(请参阅 的联机帮助页resize2fs)。当您从 运行您的操作系统时/,您无法卸载/。这意味着您必须启动另一个操作系统(例如从 USB 密钥)来进行更改。
在您的情况下,它是一个远程服务器(最有可能在 KVM 上),因此您可能无法从 USB/实时操作系统映像启动。可能还有其他方法可以通过管理 GUI 从您的 vServer 提供程序更改分区。我相信这是你目前最好的选择。
| 归档时间: |
|
| 查看次数: |
387905 次 |
| 最近记录: |