From d797ed15ceaeb58fe455ef454a1c368f1016e4ec Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 3 Jan 2018 06:44:18 +0800 Subject: [PATCH] =?UTF-8?q?PRF&PUB:20171115=20How=20to=20Fix=20the=20?= =?UTF-8?q?=E2=80=98No=20Space=20Left=20on=20Device-=20Error=20on=20Linux.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @lujun9972 https://linux.cn/article-9196-1.html --- ...€˜No Space Left on Device- Error on Linux.md | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) rename {translated/tech => published}/20171115 How to Fix the ‘No Space Left on Device- Error on Linux.md (70%) diff --git a/translated/tech/20171115 How to Fix the ‘No Space Left on Device- Error on Linux.md b/published/20171115 How to Fix the ‘No Space Left on Device- Error on Linux.md similarity index 70% rename from translated/tech/20171115 How to Fix the ‘No Space Left on Device- Error on Linux.md rename to published/20171115 How to Fix the ‘No Space Left on Device- Error on Linux.md index f6545ab846..f18006fb03 100644 --- a/translated/tech/20171115 How to Fix the ‘No Space Left on Device- Error on Linux.md +++ b/published/20171115 How to Fix the ‘No Space Left on Device- Error on Linux.md @@ -1,17 +1,18 @@ -如何解决 Linux 中‘ç£ç›˜ç©ºé—´ä¸è¶³â€™çš„问题 +如何解决 Linux 中“ç£ç›˜ç©ºé—´ä¸è¶³â€çš„问题 ====== -![](https://www.maketecheasier.com/assets/uploads/2017/10/no-space-feat.jpg) +![](https://www.maketecheasier.com/assets/uploads/2017/10/no-space-feat.jpg) -明明有很多剩余空间,但 Linux 系统ä¾ç„¶æç¤ºæ²¡æœ‰ç©ºé—´å‰©ä½™ã€‚为什么会这样呢?Linux å¶å°”会有一些令人沮丧的模糊错误出现,而这就是其中一ç§ã€‚ä¸è¿‡è¿™ç§é”™è¯¯é€šå¸¸éƒ½æ˜¯ç”±æŸå‡ ç§å› ç´ å¯¼è‡´çš„。 +明明有很多剩余空间,但 Linux 系统ä¾ç„¶æç¤ºæ²¡æœ‰ç©ºé—´å‰©ä½™ã€‚为什么会这样呢?Linux å¶å°”会有一些令人沮丧的模糊的错误消æ¯å‡ºçŽ°ï¼Œè€Œè¿™å°±æ˜¯å…¶ä¸­ä¸€ç§ã€‚ä¸è¿‡è¿™ç§é”™è¯¯é€šå¸¸éƒ½æ˜¯ç”±æŸå‡ ç§å› ç´ å¯¼è‡´çš„。 -## 通过 du å’Œ df 检查ç£ç›˜ç©ºé—´ +### 通过 du å’Œ df 检查ç£ç›˜ç©ºé—´ 在开始行动å‰ï¼Œæœ€å¥½å…ˆæ£€æŸ¥ä¸€ä¸‹æ˜¯å¦ç£ç›˜ä¸Šæ˜¯å¦ç¡®å®žè¿˜æœ‰ç©ºé—´å‰©ä½™ã€‚虽然桌é¢çŽ¯å¢ƒçš„å·¥å…·ä¹Ÿå¾ˆä¸é”™ï¼Œä½†å‘½ä»¤è¡Œä¸Šçš„工具更直接,è¦å¥½çš„多。 ![Linux Filesystem du][1] 首先让我们看看 `du` å‘½ä»¤ã€‚ç”¨å®ƒæ¥æ£€æŸ¥é—®é¢˜ç£ç›˜æ‰€åœ¨çš„æŒ‚载点目录。本文å‡è®¾å‡ºé—®é¢˜çš„分区挂载点为根目录。 + ``` sudo du -sh / ``` @@ -19,57 +20,62 @@ sudo du -sh / ![Linux Filesystem df][2] 由于它è¦é历ç£ç›˜ä¸­çš„æ‰€æœ‰æ–‡ä»¶ï¼Œå› æ­¤éœ€è¦èŠ±è´¹ä¸€ç‚¹æ—¶é—´ã€‚çŽ°åœ¨å†è®©æˆ‘们试试 `df`。 + ``` sudo df -h ``` -把根目录和在其中挂载的文件系统加在这æ¡å‘½ä»¤çš„åŽé¢ã€‚比如,若你的有一个独立的ç£ç›˜æŒ‚载到 "/home"ï¼Œé‚£ä¹ˆé™¤äº†æ ¹ç›®å½•ä¹‹å¤–ï¼Œä½ ä¹Ÿéœ€è¦æŠŠå®ƒåŠ è¿›æ¥ã€‚使用空间的总和应该跟你 `du` 命令得到的结果接近。å¦åˆ™çš„è¯ï¼Œå°±è¯´æ˜Žå¯èƒ½æœ‰å·²åˆ é™¤æ–‡ä»¶çš„æ–‡ä»¶è¢«è¿›ç¨‹å ç”¨ã€‚ +把根目录和在其中挂载的文件系统加在这æ¡å‘½ä»¤çš„åŽé¢ã€‚比如,若你的有一个独立的ç£ç›˜æŒ‚载到 `/home`ï¼Œé‚£ä¹ˆé™¤äº†æ ¹ç›®å½•ä¹‹å¤–ï¼Œä½ ä¹Ÿéœ€è¦æŠŠå®ƒåŠ è¿›æ¥ã€‚使用空间的总和应该跟你 `du` 命令得到的结果接近。å¦åˆ™çš„è¯ï¼Œå°±è¯´æ˜Žå¯èƒ½æœ‰å·²åˆ é™¤æ–‡ä»¶çš„æ–‡ä»¶è¢«è¿›ç¨‹å ç”¨ã€‚ -当然,这里主è¦ä¸“注点在于这些命令的结果是å¦è¦å°äºŽç£ç›˜çš„大å°ã€‚如果确实å°äºŽç£ç›˜å¤§å°ï¼Œé‚£ä¹ˆå¾ˆæ˜Žæ˜¾æœ‰å¾ˆä¹ˆåœ°æ–¹ä¸å¯¹åŠ²ã€‚ +当然,这里主è¦ä¸“注点在于这些命令的结果是å¦è¦å°äºŽç£ç›˜çš„大å°ã€‚如果确实å°äºŽç£ç›˜å¤§å°ï¼Œé‚£ä¹ˆå¾ˆæ˜Žæ˜¾æœ‰å¾ˆå¤šåœ°æ–¹ä¸å¯¹åŠ²ã€‚ - **相关**:[使用 Agedu 分æžç¡¬ç›˜ç©ºé—´ä½¿ç”¨çж况 ][3] +**相关**:[使用 Agedu 分æžç¡¬ç›˜ç©ºé—´ä½¿ç”¨çж况 ][3] -## å¯èƒ½çš„原因 +### å¯èƒ½çš„原因 è¿™é‡Œåˆ—å‡ºäº†ä¸€äº›äº§ç”Ÿè¿™ç§æƒ…况的主è¦åŽŸå› ã€‚è‹¥ä½ å‘现 `du` å’Œ `df` 的结果之间有差别,那么å¯ä»¥ç›´æŽ¥æ£€æŸ¥ç¬¬ä¸€é¡¹åŽŸå› ã€‚å¦åˆ™ä»Žç¬¬äºŒé¡¹åŽŸå› å¼€å§‹æ£€æŸ¥ã€‚ -### 已删除文件被进程所å ç”¨ +#### 已删除文件被进程所å ç”¨ 有时,文件å¯èƒ½å·²ç»è¢«åˆ æŽ‰äº†ï¼Œä½†æœ‰è¿›ç¨‹ä¾ç„¶åœ¨ä½¿ç”¨å®ƒã€‚在进程è¿è¡ŒæœŸé—´ï¼ŒLinux ä¸ä¼šé‡Šæ”¾è¯¥æ–‡ä»¶çš„å­˜å‚¨ç©ºé—´ã€‚ä½ éœ€è¦æ‰¾å‡ºè¿™ä¸ªè¿›ç¨‹ç„¶åŽé‡å¯è¿™ä¸ªè¿›ç¨‹ã€‚ ![Check processes for deleted files][4] 使用下é¢å‘½ä»¤æ¥å®šä½è¿›ç¨‹ã€‚ + ``` sudo lsof / | grep deleted ``` 这应该会列出出问题的进程了,然åŽé‡å¯è¯¥è¿›ç¨‹ã€‚ + ``` sudo systemctl restart service_name ``` -### i 节点ä¸å¤Ÿäº† +#### i 节点ä¸å¤Ÿäº† ![Linux check filesystem inodes][5] -文件系统中有一些称为 "i 节点" 的元数æ®"。其用æ¥ä¿å­˜æ–‡ä»¶çš„相关信æ¯ã€‚很多文件系统中的 i èŠ‚ç‚¹æ•°é‡æ˜¯å›ºå®šçš„,因此很å¯èƒ½ i 节点已ç»è€—尽了而文件系统本身还没有用完。你å¯ä»¥ä½¿ç”¨ `df` æ¥æ£€æŸ¥ã€‚ +文件系统中有一些称为 “i 节点inode†的元数æ®ï¼Œå…¶ç”¨æ¥ä¿å­˜æ–‡ä»¶çš„相关信æ¯ã€‚很多文件系统中的 i èŠ‚ç‚¹æ•°é‡æ˜¯å›ºå®šçš„,因此很å¯èƒ½ i 节点已ç»è€—尽了而文件系统本身还没有用完。你å¯ä»¥ä½¿ç”¨ `df` æ¥æ£€æŸ¥ã€‚ + ``` sudo df -i / ``` 比较一下已用的 i 节点和总共的 i 节点数é‡ã€‚如果没有å¯ç”¨çš„ i 节点了,那么很ä¸å¹¸ï¼Œä½ ä¹Ÿæ— æ³•扩充 i 节点。删除一些无用的和过期的文件æ¥é‡Šæ”¾ä¸€äº› i 节点å§ã€‚ -### çŽ¯å— +#### çŽ¯å— + +最åŽä¸€ä¸ªå¾ˆå¸¸è§çš„问题就是å的文件系统å—。除éžå¦æœ‰æ ‡è®°ï¼Œå¦åˆ™æ“作系统很å¯èƒ½ä¼šè®¤ä¸ºè¿™äº›å—都是å¯ç”¨çš„,这会导致文件系统æŸåæˆ–è€…ç¡¬ç›˜åæ­»ã€‚最好是使用带 `-cc` 标志的 `fsck` æœç´¢å¹¶æ ‡è®°å‡ºè¿™äº›å—。记ä½ï¼Œä½ ä¸èƒ½ä½¿ç”¨æ­£åœ¨ä½¿ç”¨çš„æ–‡ä»¶ç³»ç»Ÿï¼ˆLCTT 译注:å³åŒ…å«åå—的文件系统)中的 `fsck` 命令。你应该会è¦ç”¨åˆ° live CD。 -without 一个很常è§çš„问题就是å的文件系统å—。除éžå¦æœ‰æ ‡è®°ï¼Œå¦åˆ™æ“作系统很å¯èƒ½ä¼šè®¤ä¸ºè¿™äº›å—都是å¯ç”¨çš„,这会导致文件系统æŸåæˆ–è€…ç¡¬ç›˜åæ­»ã€‚最好是使用带 `-cc` 标志的 `fsck` æœç´¢å¹¶æ ‡è®°å‡ºè¿™äº›å—。记ä½ï¼Œä½ ä¸èƒ½ä½¿ç”¨æ­£åœ¨æµ‹è¯•的文件系统 (LCTT 注:å³åŒ…å«åå—的文件系统)中的 `fsck`。你应该会è¦ç”¨åˆ° live CD。 ``` sudo fsck -vcck /dev/sda2 ``` 很明显,这里需è¦ä½¿ç”¨ä½ æƒ³æ£€æŸ¥çš„ç£ç›˜è·¯å¾„å–代命令中的ç£ç›˜ä½ç½®ã€‚å¦å¤–ï¼Œè¦æ³¨æ„ï¼Œè¿™ææ€•会花上很长一段时间。 - **相关**:[使用 fsck 检查并修å¤ä½ çš„æ–‡ä»¶ç³»ç»Ÿ [Linux]][6] +**相关**:[使用 fsck 检查并修å¤ä½ çš„æ–‡ä»¶ç³»ç»Ÿ [Linux]][6] 希望这些方案能解决你的问题。这ç§é—®é¢˜åœ¨ä»»ä½•æƒ…å†µä¸‹éƒ½ä¸æ˜¯é‚£ä¹ˆå®¹æ˜“è¯Šæ–­çš„ã€‚ä½†æ˜¯ï¼Œåœ¨è¿æ°”好的情况下,你å¯ä»¥æŠŠæ–‡ä»¶ç³»ç»Ÿæ¸…ç†å¹²å‡€å¹¶è®©ä½ çš„ç¡¬ç›˜å†æ¬¡æ­£å¸¸å·¥ä½œã€‚ @@ -79,7 +85,7 @@ via: https://www.maketecheasier.com/fix-linux-no-space-left-on-device-error/ 作者:[Nick Congleton][a] 译者:[lujun9972](https://github.com/lujun9972) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) è£èª‰æŽ¨å‡º