Ubuntu 20.04
当我尝试登录时,我收到一条错误消息。我试图截屏,但它冻结了。
当我重新启动时,一切看起来都很好,系统提示我输入密码。它似乎登录了,但只是循环回到登录屏幕。
我使用 Ubuntu 棒访问了我的硬盘,发现硬盘上没有可用字节。我怀疑内存不足,无法完成登录。
我可以访问我的所有文件,我想删除一些,但“移至垃圾箱”选项被禁用。
如何通过我的 Ubuntu 棒以管理员身份访问硬盘并删除一些文件?
答案1
为了能够从 Ubuntu 安装棒中删除文件:
- 启动安装程序然后选择“尝试 Ubuntu”
- 一旦 GUI 启动,就找到终端。
- 通过运行找到 Ubuntu 安装的硬盘位置
fdisk -l
。 - 找到安装 Ubuntu 的硬盘位置后,运行
cd /path-to-hdd/
- 根据要删除的文件的位置,您需要
cd
转到其目录。要删除文件,请运行rm myfile
。要删除目录,请运行rm -r mydir/
我希望这有帮助。
编辑:如果要求您以 root 身份运行这些命令,请sudo
在命令开头添加。如果需要密码(我认为不需要),请查看这页。
答案2
我已经使用 Linux(和其他 UNIX)大约 20 多年了,这种情况我经常遇到。
首先,无需重新安装 - 我从来没有这样做过,而且我真的无法想象为什么需要这样做。完整的根文件系统只是意味着您无法存储更多数据,但已经存在的数据没有问题;可能有一些数据被损坏了 - 例如在数据库中 - 但我见过的次数不够多,所以记不清了。就您而言,您无法登录,因为您的 shell 或桌面管理器需要存储一些数据,但无法存储;您只需要释放一些空间。
要做的是,进入命令行 - 如果您可以从实时发行版启动,就像其他人说的那样,请执行此操作,打开终端并安装您需要处理的文件系统(如果尚未发生)。首先找到磁盘设备(用于df
列出已安装的设备):
# df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 26379228 3284 26375944 1% /run
/dev/nvme1n1p4 863630096 744645468 75040948 91% /
tmpfs 131896140 4 131896136 1% /dev/shm
...
# fdisk -l
...
Disk /dev/loop7: 55.52 MiB, 58212352 bytes, 113696 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 /dev/nvme1n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 970 EVO Plus 1TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 2217FDA8-ADEA-49F9-B6A0-A7A26460B6FA
Device Start End Sectors Size Type
/dev/nvme1n1p1 34 32767 32734 16M Microsoft reserved
/dev/nvme1n1p2 32768 195381657 195348890 93.1G Microsoft basic data
/dev/nvme1n1p3 195383296 196431871 1048576 512M EFI System
/dev/nvme1n1p4 196431872 1953523711 1757091840 837.8G Linux filesystem
...
忽略这些/dev/loop
,它们是困扰 Ubuntu 的愚蠢行为的表现snap
。对于每个标记为 的Linux filesystem
,在某处创建一个挂载点并挂载它:
# mkdir /myroot
# mount /dev/nvme1n1p4 /myroot
我怀疑除了 EFI 分区(如果您使用 EFI 分区的话)之外,其他所有东西都只放在一个分区上。因此,经常发生的情况是 /tmp 或 /var 已填满,由于所有东西都位于同一分区上,因此您的根文件系统会用尽空间。以下是我通常的做法:
找出所有空间都去哪儿了;为此使用du
(下面我以 root 身份运行,因为我很硬核(又名愚蠢),但你可以sudo
在所有命令前面使用,除了命令之外cd
):
# cd /
# du -sk etc home lib* mnt opt root snap tmp usr var | sort -n
为什么你不应该输入sudo
字体cd
?因为sudo cd /some/directory
它在子 shell 中执行,并且当命令完成后,你将回到你开始的地方。
du
显示使用了多少空间,并-sk
以 KB 为单位进行汇总;通常你会使用类似du -sk *
,但我发现它经常挂在根目录中的某些子目录中,所以我倾向于避免这些。该| sort -n
部分获取输出并按数字排序,因此你会在底部看到最大的罪魁祸首。假设你发现它是/var
:
# cd /var
# du -sk * | sort -n
- 等等。在这种情况下,您可能会发现它
/var/log
已经变得太大了,通常您可以毫无问题地删除其中的一些文件。/tmp
顺便说一下,另一个可以删除的地方是。
然后要删除,使用rm
:
# # In /var/log:
# ls
alternatives.log btmp lastlog
alternatives.log.1 btmp.1 openvpn
alternatives.log.2.gz cups private
alternatives.log.3.gz dist-upgrade speech-dispatcher
alternatives.log.4.gz dmesg syslog
alternatives.log.5.gz dmesg.0 syslog.1
alternatives.log.6.gz dmesg.1.gz syslog.2.gz
...
以 结尾的文件.gz
是较旧的压缩日志文件,通常可以丢弃 - 但要小心,先尝试使用 ls 查看要删除的内容:
# ls *gz
# rm *gz
ls
当您考虑使用任何类型的通配符或正则表达式删除内容时,请始终使用它!
完成此练习后,您应该已经释放了足够的空间,下次安装 Linux 系统时,请记住将诸如/var
、/opt
和 之类的文件/tmp
(以及您发现太大的文件)放在单独的分区上。您可能仍然会用完空间,但至少麻烦可能少一些。
答案3
创建空间有不同的方法:
选择一个文件并按
shift
+del
。这将删除该文件。您无法将文件移至垃圾箱,因为没有空间。或者您可以前往该位置,右键单击并选择该选项
open in terminal
并使用该rm
命令。或者您可以剪切并粘贴到另一个磁盘/分区。
或者您可以前往该位置,右键单击并选择该选项
move to wastebin
,但按住 Shift 键它会改变delete
并选择该选项。