/dev/xvda1
已满,所以我想将其内容移至我的 30GBudev
文件系统上。
Filesystem Size Used Avail Use% Mounted on
udev 30G 4.0K 30G 1% /dev
tmpfs 5.9G 768K 5.9G 1% /run
/dev/xvda1 7.8G 7.4G 0 100% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 30G 0 30G 0% /run/shm
none 100M 0 100M 0% /run/user
我怎样才能做到这一点?
堆栈:EC2 Ubuntu 机器。
答案1
不要使用cp复制大量数据。
也使用rsync,因为如果中断可以重新启动。使用以下内容:
rsync -az -H /path/to/source /path/to/destination
-a : Archive mode (i.e. recurse into directories, and preserve symlinks, file permissions, file modification times, file group, file owner, device files & special files) <br>
-z : Compress file data during the transfer <br>
-H : Preserve hard links (i.e. copy hard links as hard links)
正如评论者指出的那样进行编辑,我没有看到这是您的 / 目录。
如果使用 bash 或 zsh 作为 shell,请添加:
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}
现在变成了
rsync -az -H --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /path/to/source /path/to/destination
否则,如果使用不同的 shell,您应该--exclude
为每个不同的目录执行一个声明。
答案2
在大多数情况下,您不会将文件从一个文件系统移动到另一个文件系统。如果您要扩大虚拟机中的磁盘或从同一磁盘获取更多空间,则需要扩大包含文件系统的分区,然后扩大文件系统以填充分区(使用哪些命令取决于分区类型和文件系统类型)。如果您要移动到新磁盘,通常更快更容易地复制整个分区,然后按上述方法放大它。
就您而言,由于这是虚拟机,因此您需要首先为其提供更大的磁盘。正如所指出的马克·普洛特尼克在评论中, 检查AWS 指南;有一个用于附加新卷的 Web 界面,还有一个用于执行复制(通过创建和恢复快照)的 Web 界面。
请注意,这/dev
不是存储文件系统,而是 RAM 中的文件系统。它的 30GB 可用空间是可以存储的最大数据量,但这会占用 RAM 中的一部分,并且在重新启动时会丢失。再次,不要将任何文件移动到/dev
,它们将在您重新启动时被删除。