#VI /etc/fstab E325: ATTENTION

本文介绍了当遇到Vim编辑器因不正常关闭而遗留的暂存文件(.swp)时,可能出现的问题及解决方法。提供了针对不同情况的处理选项,如恢复未保存的更改、删除无效的暂存文件等。
部署运行你感兴趣的模型镜像

 

由於 vim 的工作被不正常的中斷,導致暫存檔無法藉由正常流程來結束, 所以暫存檔就不會消失,而繼續保留下來。此時如果你繼續編輯那個 man.config ,會出現什麼情況呢? 會出現如下所示的狀態喔:

[root@www vitest]# vim man.configE325: ATTENTION <==錯誤代碼Found a swap file by the name ".man.config.swp"<==底下數行說明有暫存檔的存在 owned by: root dated: Mon Jan 12 14:48:24 2009 file name: /tmp/vitest/man.config<==這個暫存檔屬於哪個實際的檔案? modified: no user name: root host name: www.vbird.tsai process ID: 11539While opening file "man.config" dated: Mon Jan 12 13:55:07 2009底下說明可能發生這個錯誤的兩個主要原因與解決方案!(1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution.(2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r man.config" to recover the changes (see ":help recovery"). If you did this already, delete the swap file ".man.config.swp" to avoid this message.Swap file ".man.config.swp" already exists!底下說明你可進行的動作[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

 

由於暫存檔存在的關係,因此 vim 會主動的判斷你的這個檔案可能有些問題,在上面的圖示中 vim 提示兩點主要的問題與解決方案,分別是這樣的:

  • 問題一:可能有其他人或程式同時在編輯這個檔案:

    由於 Linux 是多人多工的環境,因此很可能有很多人同時在編輯同一個檔案。如果在多人共同編輯的情況下, 萬一大家同時儲存,那麼這個檔案的內容將會變的亂七八糟!為了避免這個問題,因此 vim 會出現這個警告視窗! 解決的方法則是:

    • 找到另外那個程式或人員,請他將該 vim 的工作結束,然後你再繼續處理。 

    • 如果你只是要看該檔案的內容並不會有任何修改編輯的行為,那麼可以選擇開啟成為唯讀(O)檔案, 亦即上述畫面反白部分輸入英文『 o 』即可,其實就是 [O]pen Read-Only 的選項啦!

  • 問題二:在前一個 vim 的環境中,可能因為某些不知名原因導致 vim 中斷 (crashed):

    這就是常見的不正常結束 vim 產生的後果。解決方案依據不同的情況而不同喔!常見的處理方法為:

    • 如果你之前的 vim 處理動作尚未儲存,此時你應該要按下『R』,亦即使用 (R)ecover 的項目, 此時 vim 會載入 .man.config.swp 的內容,讓你自己來決定要不要儲存!這樣就能夠救回來你之前未儲存的工作。 不過那個 .man.config.swp 並不會在你結束 vim 後自動刪除,所以你離開 vim 後還得要自行刪除 .man.config.swp 才能避免每次打開這個檔案都會出現這樣的警告

    • 如果你確定這個暫存檔是沒有用的,那麼你可以直接按下『D』刪除掉這個暫存檔,亦即 (D)elete it 這個項目即可。 此時 vim 會載入 man.config ,並且將舊的 .man.config.swp 刪除後,建立這次會使用的新的 .man.config.swp 喔!

至於這個發現暫存檔警告訊息的畫面中,有出現六個可用按鈕,各按鈕的說明如下:

  • [O]pen Read-Only:打開此檔案成為唯讀檔, 可以用在你只是想要查閱該檔案內容並不想要進行編輯行為時。一般來說,在上課時,如果你是登入到同學的電腦去看他的設定檔, 結果發現其實同學他自己也在編輯時,可以使用這個模式;

  • (E)dit anyway:還是用正常的方式打開你要編輯的那個檔案, 並不會載入暫存檔的內容。不過很容易出現兩個使用者互相改變對方的檔案等問題!不好不好!

  • (R)ecover:就是載入暫存檔的內容,用在你要救回之前未儲存的工作。 不過當你救回來並且儲存離開 vim 後,還是要手動自行刪除那個暫存檔喔!rm -f .fstab.swap

  • (D)elete it:你確定那個暫存檔是無用的!那麼開啟檔案前會先將這個暫存檔刪除! 這個動作其實是比較常做的!因為你可能不確定這個暫存檔是怎麼來的,所以就刪除掉他吧!哈哈!

  • (Q)uit:按下 q 就離開 vim ,不會進行任何動作回到命令提示字元。

  • (A)bort:忽略這個編輯行為,感覺上與 quit 非常類似! 也會送你回到命令提示字元就是囉!

转自:http://blog.chinaunix.net/uid-23933445-id-99686.html

您可能感兴趣的与本文相关的镜像

ComfyUI

ComfyUI

AI应用
ComfyUI

ComfyUI是一款易于上手的工作流设计工具,具有以下特点:基于工作流节点设计,可视化工作流搭建,快速切换工作流,对显存占用小,速度快,支持多种插件,如ADetailer、Controlnet和AnimateDIFF等

<think> 我们之前已经讨论过,`source /etc/fstab` 命令是不合适的,因为 `source` 命令用于执行脚本文件,而 `/etc/fstab` 是一个配置文件,它定义了文件系统的静态信息。因此,我们需要使用正确的方法来使 `/etc/fstab` 中的配置生效。 根据之前的讨论,正确的命令是使用 `sudo mount -a` 来挂载 `/etc/fstab` 中定义的所有文件系统。但是,用户在执行 `source /etc/fstab` 时遇到了三个错误: 1. `/dev/mapper/rhel-root: Permission denied` 2. `/boot: Is a directory` 3. `/dev/mapper/rhel-swap: Permission denied` 这些错误的原因分别是: - 对于设备文件(如 `/dev/mapper/rhel-root` 和 `/dev/mapper/rhel-swap`),普通用户没有读取权限,因此会报权限拒绝。 - 对于目录(如 `/boot`),`source` 命令无法将其作为脚本执行,因此会提示“是一个目录”。 所以,根本问题在于命令的使用方式错误。我们应该使用 `mount` 命令来操作。 然而,用户可能还担心权限问题,因为错误信息中出现了“Permission denied”。实际上,在挂载文件系统时,通常需要 root 权限。因此,我们需要使用 `sudo` 来执行 `mount -a`。 步骤: 1. 使用 `sudo mount -a` 命令来挂载所有在 `/etc/fstab` 中定义的文件系统。 2. 如果挂载过程中出现错误,需要检查 `/etc/fstab` 文件的语法和配置是否正确。 另外,如果用户只是想要查看 `/etc/fstab` 文件的内容,可以使用 `cat` 命令(无需 root 权限): `cat /etc/fstab` 但是,如果用户希望立即应用 `/etc/fstab` 中的配置(例如在修改后),那么使用 `sudo mount -a` 是正确的。 因此,针对用户的问题,解决方案是: - 停止使用 `source` 命令来操作 `/etc/fstab`。 - 使用 `sudo mount -a` 来重新挂载所有文件系统。 如果执行 `sudo mount -a` 后仍然有错误,需要根据错误信息进一步排查。可能的错误包括: - 设备路径不存在 - 挂载点目录不存在 - 文件系统类型错误 - 选项错误等 此外,对于交换分区,除了挂载,我们还需要使用 `swapon` 命令。不过,在 `/etc/fstab` 中配置的交换分区,可以通过 `sudo swapon -a` 来启用。 所以,完整的步骤可以是: 1. 挂载文件系统:`sudo mount -a` 2. 启用交换分区:`sudo swapon -a` 这样,`/etc/fstab` 中定义的所有文件系统和交换分区都会被激活。 现在,我们来总结回答: 用户的问题:执行 `source /etc/fstab` 出现权限拒绝和目录错误的提示。 解答: 您不应该使用 `source` 命令来加载 `/etc/fstab` 文件。`source` 命令用于执行脚本文件,而 `/etc/fstab` 是一个配置文件,它包含了文件系统的静态信息。正确的做法是使用 `mount` 命令来挂载文件系统,使用 `swapon` 命令来启用交换分区。 请按照以下步骤操作: 1. 使用以下命令挂载所有在 `/etc/fstab` 中定义的文件系统(需要 root 权限): ```bash sudo mount -a ``` 2. 使用以下命令启用所有在 `/etc/fstab` 中定义的交换分区(需要 root 权限): ```bash sudo swapon -a ``` 如果这些命令执行过程中出现错误,请检查错误信息,并修正 `/etc/fstab` 文件中的配置。 另外,如果您只是想查看 `/etc/fstab` 文件的内容,可以使用: ```bash cat /etc/fstab ``` 这样就不会有权限问题了。 如果问题仍然存在,请检查设备文件(如 `/dev/mapper/rhel-root` 和 `/dev/mapper/rhel-swap`)是否存在,以及您是否有权限访问它们。通常,这些设备文件属于 root 用户,普通用户无法直接访问,但通过 `sudo` 命令以 root 权限执行时是可以访问的。 注意:在修改 `/etc/fstab` 文件时,请务必小心,错误的配置可能导致系统无法启动。建议在修改前备份该文件。 根据引用[2]和引用[4]中的一些思路,如果遇到磁盘空间满的问题,可以参考其中的清理方法,但当前问题与磁盘空间无关。 现在,我们生成相关问题: §§相关问题§§ 1. 执行 `sudo mount -a` 命令后出现错误应该怎么处理? 2. 如何正确编辑和修改 `/etc/fstab` 文件? 3. 交换分区(swap)在系统中的作用是什么? 4. 除了 `/etc/fstab` 文件,还有哪些方法可以临时挂载文件系统? </think> 要解决执行 `source /etc/fstab` 命令时出现的权限拒绝和目录错误问题,请按以下步骤操作: ### 解决方案 1. **停止使用 `source` 命令操作 `/etc/fstab`** `/etc/fstab` 是文件系统挂载配置文件而非可执行脚本,`source` 命令会错误地尝试将其作为脚本执行导致报错。 2. **使用正确的挂载命令** 通过 `mount -a` 加载 `/etc/fstab` 配置: ```bash sudo mount -a ``` - 此命令会读取 `/etc/fstab` 并挂载所有定义的文件系统 - `sudo` 提供必要的 root 权限解决 `Permission denied` 错误 3. **单独处理交换分区** 对于交换分区(如 `/dev/mapper/rhel-swap`),需额外执行: ```bash sudo swapon -a ``` 4. **验证挂载结果** 检查是否成功挂载: ```bash mount | grep /dev/mapper # 查看逻辑卷挂载 lsblk # 显示所有块设备状态 free -h # 检查交换分区激活状态 ``` ### 错误原因说明 | 错误信息 | 原因 | 解决方案 | |---------|------|---------| | `/dev/mapper/...: Permission denied` | 普通用户无权访问设备文件 | 使用 `sudo` 提权 | | `/boot: Is a directory` | `source` 无法操作目录 | 改用 `mount` 命令 | | 交换分区未激活 | `mount` 不处理交换分区 | 额外执行 `swapon -a` | ### 关键注意事项 1. **权限问题** 设备文件(如 `/dev/mapper/rhel-root`)通常需要 root 权限访问: ```bash ls -l /dev/mapper/rhel-root # 查看权限(通常为 root:root) ``` 通过引用[2]的方法可调整设备组权限(但不推荐用于系统设备): ```bash sudo usermod -aG disk $USER # 将用户加入disk组 ``` 2. **磁盘空间问题** 如果出现 `/dev/mapper/... full` 错误(引用[3][4]): ```bash df -h # 查看磁盘使用 sudo du -sh /* # 查找大文件 lsof | grep deleted # 查找已删未释放文件 sudo journalctl --vacuum-size=200M # 清理日志 ``` > **重要提示**:修改 `/etc/fstab` 前务必备份: > `sudo cp /etc/fstab /etc/fstab.bak` ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值