ubuntu死机咋办_Ubuntu 桌面卡死不重启的几种恢复方法方法

当Ubuntu GNOME桌面出现卡死情况时,可以尝试三种无重启恢复方法:1) 使用X11restart快捷键Alt+F2+r重启会话;2) 切换到Wayland并停止/启动显示管理器;3) 在TTY中利用GnomeShell内置的replace函数替换当前会话。这些方法能帮助用户解决桌面环境的稳定性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu GNOME 桌面不是很稳定经常发生卡死的情况以下几种方法可以在不重启的条件下恢复桌面

Method 1 -X11 restart

Alt+F2

20200726152312994277.png

按r

会话自动重启

Method 2 -Wayland restart

Wayland 是一个新的display协议,Gnome Shell 所支持的,基本上支持所有的主流GPU

Ctrl + Alt + F3 登录TTY

出现Login的话 需要输入你的账户名和密码

sudo systemctl stop gdm

# 如果你使用的是LightDM 则执行

sudo systemctl stop lightdm

# 接下来执行

sudo systemctl start gdm

# 如果你使用的是LightDM 则执行

sudo systemctl start lightdm

Method 3 -Display 替代

如果Method 1 和 Method 2 两种方法都对你无效那么请尝试第三种方法

利用 Gnome Shell 内建的 replace 函数

Ctrl + Alt + F3 登录TTY

出现Login的话 需要输入你的账户名和密码

touch gnome-restart

echo ‘#!/bin/bash‘ > gnome-restart

echo ‘DISPLAY=:0 gnome-shell --replace &‘ >> gnome-restart

sudo chmod +x gnome-restart

sudo mv gnome-restart /usr/bin/

gnome-restart

<think>嗯,用户想配置Linux系统开机自动挂载分区或网络存储。这个问题其实很常见,特别是对服务器管理员来说,自动挂载能省去很多重复操作。 用户可能刚接触Linux系统管理,或者之前都是手动挂载现在想优化工作流程。从问题表述看,用户应该有一定基础但可能熟悉fstab这类系统级配置。 参考引用内容,主要有四种方法:fstab文件配置、rc.local脚本、autofs按需挂载、systemd.mount单元。其中fstab是最主流的方式,需要重点说明。 fstab配置的关键点在于:获取正确的UUID或设备路径、确认文件系统类型、选择合适的挂载选项。用户可能容易混淆的是defaults选项的含义,以及最后两个数字的作用。需要特别说明0 0表示备份检查,对网络存储很重要。 对于网络存储,NFS和Samba的配置差异要讲清楚。比如NFS用nfs类型,可能需要soft和timeo选项防止卡死;Samba需要credentials文件保存密码更安全。 autofs虽然配置复杂些,但对U盘这类热插拔设备很实用,可以避免长期挂载占用资源。用户如果是桌面环境可能更需要这个。 还要提醒用户注意:配置前务必用mount命令测试参数是否有效,否则错误配置可能导致系统无法启动。特别是fstab里添加noauto选项更安全。 最后考虑用户可能的疑问点:如何查看UUID?怎么创建credentials文件?autofs超时设置多少合适?这些都要在回答里覆盖到。 安全方面要强调避免在fstab直接写密码,以及配置后运行mount -a测试的重要性。对新手来说,用UUID代替设备路径也更可靠,防止磁盘识别顺序变化导致挂载错误。 相关的问题可以围绕同场景展开:比如移动硬盘和网络存储的特殊处理,或者遇到启动失败如何修复。用户如果遇到具体问题可能会需要这些延伸内容。</think>在 Linux 系统中配置开机自动挂载存储设备(本地分区或网络存储)主要有以下几种常用方法,其中 **`/etc/fstab` 文件是最标准、最推荐的方式**: ### 📌 方法一:配置 `/etc/fstab` 文件 (推荐) 这是最常用、最可靠的开机自动挂载方法,由系统在启动早期阶段处理。 1. **获取设备标识符或网络路径:** * **本地分区/磁盘:** 使用 `lsblk -f` 或 `blkid` 命令查看设备的 **UUID**(首选,因为设备名如 `/dev/sda1` 可能变化)或文件系统类型。 * 例如:`UUID=12345678-90ab-cdef-1234-567890abcdef` 或 `/dev/sdb1`(推荐,除非是固定设备如 LVM)。 * **NFS 网络存储:** 需要知道 NFS 服务器的 IP/主机名 和 导出的路径。例如:`192.168.1.100:/shared/data`。 * **CIFS/SMB 网络存储 (Windows 共享):** 需要知道 SMB 服务器的 IP/主机名、共享名和可选的凭据文件路径。例如:`//192.168.1.200/public`。 2. **创建挂载点目录:** ```bash sudo mkdir -p /mnt/mydata # 将 /mnt/mydata 替换为你想要的挂载路径 ``` 3. **编辑 `/etc/fstab` 文件:** ```bash sudo nano /etc/fstab # 或使用 vi/vim 等文本编辑器 ``` 在文件末尾添加一行,格式如下: ```bash <设备标识符或网络路径> <挂载点> <文件系统类型> <挂载选项> <dump备份标记> <fsck检查顺序> ``` * **`<设备标识符或网络路径>`:** 使用 UUID(`UUID=xxxx`)或设备路径(`/dev/sdXy`)或网络路径(NFS/SMB)。 * **`<挂载点>`:** 上一步创建的绝对路径目录(如 `/mnt/mydata`)。 * **`<文件系统类型>`:** * 本地:`ext4`, `xfs`, `btrfs`, `ntfs-3g`(需安装 `ntfs-3g`), `vfat`(FAT32)等。 * NFS:`nfs` 或 `nfs4`。 * CIFS/SMB:`cifs`。 * **`<挂载选项>`:** 逗号分隔的选项列表。常用选项: * `defaults`: 包含 `rw, suid, dev, exec, auto, nouser, async`(对大多数情况适用)。 * `noauto`: 开机自动挂载(需要手动挂载),**如果只是为了定义挂载点而想开机挂载,加上这个选项**。 * `user`/`users`: 允许普通用户挂载/卸载。 * `nofail`: 设备存在时忽略错误,防止系统启动失败(对可移动设备或可能稳定的网络存储很有用)。 * **NFS 特有选项:** `soft`, `intr`, `timeo=<value>`, `retrans=<value>`(处理网络中断或服务器无响应)。 * **CIFS/SMB 特有选项:** `credentials=/path/to/credentials_file`(包含 `username=youruser` 和 `password=yourpass` 的文件,注意文件权限设为 `600`),`uid=<userid>`, `gid=<groupid>`, `iocharset=utf8`(支持中文文件名), `file_mode=0644`, `dir_mode=0755`。 * **`<dump备份标记>`:** 通常设置为 `0`(表示使用 `dump` 工具备份)。 * **`<fsck检查顺序>`:** 通常设置为 `0`(表示检查),根分区 `/` 设置为 `1`,其他需要检查的分区设置为 `2`。**对于网络存储(NFS/CIFS)和大多数非根本地分区,必须设置为 `0`**,因为它们需要或无法在启动时被 `fsck` 检查。 4. **示例行:** * **本地 EXT4 分区 (使用 UUID):** ```bash UUID=12345678-90ab-cdef-1234-567890abcdef /mnt/data ext4 defaults, nofail 0 0 ``` * **NFS 共享:** ```bash 192.168.1.100:/exported/path /mnt/nfsshare nfs rw,soft,intr,noatime,timeo=5,retrans=5 0 0 ``` * **CIFS/SMB 共享 (使用凭据文件):** ```bash //server/sharename /mnt/smbshare cifs credentials=/etc/samba/secret.txt,uid=1000,gid=1000,iocharset=utf8,file_mode=0770,dir_mode=0770 0 0 ``` 5. **测试并应用配置:** * **重要!** 在重启前务必测试配置是否正确: ```bash sudo mount -a ``` 此命令会尝试挂载 `/etc/fstab` 中所有没有 `noauto` 选项的条目。如果挂载成功且 `df -h` 能显示新挂载的分区,说明配置基本正确。 * 如果没有错误,下次系统启动时就会自动挂载。 * 如果遇到错误(如无法挂载、权限问题、网络问题),根据错误信息修正 `/etc/fstab` 文件。 ### ⚙ 方法二:使用 `/etc/rc.local` 脚本 (较旧方法推荐用于核心存储) `rc.local` 脚本在系统启动接近完成时运行(在 multi-user.target 之后)。 1. **编辑 `/etc/rc.local` 文件:** ```bash sudo nano /etc/rc.local ``` 2. **在 `exit 0` 之前添加挂载命令:** ```bash mount -t <文件系统类型> <设备标识符或网络路径> <挂载点> # 或者使用更具体的命令,包含选项 mount -t nfs -o rw,soft,intr 192.168.1.100:/exported/path /mnt/nfsshare mount -t cifs -o credentials=/etc/samba/secret.txt,uid=1000 //server/sharename /mnt/smbshare ``` 3. **保存文件并赋予可执行权限:** ```bash sudo chmod +x /etc/rc.local ``` 4. **注意:** * 现代 systemd 系统中,`rc.local` 服务可能默认未启用,需要 `sudo systemctl enable rc-local.service`(或 `rc.local.service`)。 * 此方法在启动顺序上较晚,适合挂载系统运行所必需的分区(如 `/home`, `/var`)。 * 挂载失败会阻止系统进入登录界面(像错误的 `fstab` 可能导致启动卡住)。 * **推荐仅用于临时性、非关键的挂载,或者当 `fstab` 选项无法满足复杂挂载需求时作为补充。`fstab` 仍是首选。** ### 🔄 方法三:使用 `autofs` (按需自动挂载) `autofs` 是严格意义上的“开机自动挂载”,而是“按需自动挂载”。当用户访问挂载点目录时,`autofs` 才自动挂载对应的设备/共享;在空闲一段时间后(可配置),会自动卸载。特别适合访问频繁的 NFS 共享、可移动设备或大量用户主目录(`/home` 常使用 `autofs` 挂载 NFS)。 1. **安装 `autofs`:** ```bash sudo apt install autofs # Debian/Ubuntu sudo yum install autofs # CentOS/RHEL sudo dnf install autofs # Fedora ``` 2. **配置主配置文件 `/etc/auto.master`:** 定义挂载点“父目录”和对应的映射文件。 ```bash /mnt/autofs /etc/auto.mydata --timeout=300 ``` * `/mnt/autofs`: 自动挂载的根目录。用户最终访问的是这个目录下的子目录(如 `/mnt/autofs/nfsshare`)。 * `/etc/auto.mydata`: 自定义的映射文件,定义子目录名和挂载参数。 * `--timeout=300`: 空闲 300 秒(5 分钟)后自动卸载。 3. **创建并编辑映射文件 (如 `/etc/auto.mydata`):** ```bash nfsshare -fstype=nfs,rw,soft,intr 192.168.1.100:/exported/path smbshare -fstype=cifs,credentials=/etc/samba/secret.txt,rw,uid=1000 ://server/sharename localdata -fstype=ext4,rw,noatime UUID=12345678-90ab-cdef-1234-567890abcdef ``` * 每一行格式:`<子目录名> [挂载选项] <设备/网络路径>` * 子目录名 `nfsshare` 对应访问路径 `/mnt/autofs/nfsshare`。 4. **重启 `autofs` 服务:** ```bash sudo systemctl restart autofs ``` 5. **测试:** `cd /mnt/autofs/nfsshare` 应该会自动挂载 NFS 共享。`ls /mnt/autofs` 会看到 `nfsshare`, `smbshare` 等目录(即使未挂载)。`df -h` 查看挂载情况,等待超时后 `df -h` 应再显示该挂载。 ### 🛠 方法四:创建 Systemd Mount Unit (更底层) 这是 systemd 原生的挂载方式,相当于 `fstab` 条目的 systemd 单元化表示。通常用于需要与其他 systemd 服务有严格依赖关系的复杂挂载场景,或者需要覆盖 `fstab` 的场景。对于普通用户,`fstab` 更简单直观。 1. **创建 `.mount` 单元文件:** 文件名必须与挂载点的路径转义对应。例如挂载到 `/mnt/mydata`,文件名为 `mnt-mydata.mount`。 ```bash sudo nano /etc/systemd/system/mnt-mydata.mount ``` 2. **内容示例 (挂载本地分区):** ```ini [Unit] Description=Mount My Data Partition [Mount] What=UUID=12345678-90ab-cdef-1234-567890abcdef Where=/mnt/mydata Type=ext4 Options=defaults,nofail [Install] WantedBy=multi-user.target ``` 3. **启用并启动挂载单元:** ```bash sudo systemctl daemon-reload sudo systemctl enable --now mnt-mydata.mount # --now 表示同时立即启动(挂载) ``` ### 📋 总结与建议 1. **首选 `/etc/fstab`:** 适用于绝大多数本地分区和网络存储的开机自动挂载需求。配置清晰,是系统标准机制。 2. **谨慎使用 `rc.local`:** 适用于简单、非关键、启动顺序要求高的挂载。现代系统中优先考虑 `fstab` 或 systemd mount unit。 3. **按需挂载用 `autofs`:** 非常适合访问频繁的 NFS/SMB 共享、可移动设备,节省资源,避免网络问题阻塞启动或访问。 4. **复杂依赖用 Systemd Mount Unit:** 当挂载行为需要精确控制与其他 systemd 服务的启动顺序和依赖关系时使用。 ### 🔍 重要注意事项 * **测试 `fstab`:** 修改 `/etc/fstab` 后 **务必** 使用 `sudo mount -a` 测试配置是否正确,避免因配置错误导致系统无法启动。 * **UUID 优先:** 对于本地设备,**强烈建议使用 UUID** (`blkid`, `lsblk -f`) 而是 `/dev/sdXy`,因为设备字母编号可能因硬件变动(如插拔硬盘)而改变。 * **网络存储稳定性:** 对于网络存储(NFS/SMB),在 `fstab` 中使用 `nofail` 选项(或在 `autofs` 中使用 `soft`, `intr`)非常重要。这可以防止在启动时网络未就绪或存储服务器宕机的情况下,系统因挂载失败而卡住无法启动。 * **凭据安全:** 对于 SMB/CIFS,使用 `credentials=` 选项指向一个权限为 `600` 的文件(`chmod 600 /path/to/credfile`)来存储用户名密码,比直接在命令行或 `fstab` 中明文写密码安全得多。 * **文件系统支持:** 确保系统安装了所需的文件系统工具(如 `nfs-common`, `cifs-utils`, `ntfs-3g`)。 * **查看日志:** 如果挂载失败,使用 `journalctl -xe` 或 `dmesg | tail` 查看系统日志获取详细错误信息。 选择哪种方法取决于你的具体需求(是必需开机挂载还是按需挂载)、设备类型(本地固定、本地可移动、网络)以及对启动顺序和依赖关系的控制要求。对于大多数通用场景,精心配置 `/etc/fstab` 是最佳实践[^1][^3][^4]。 --- ### 📚 相关问题 1. **如何查看 Linux 磁盘分区的 UUID 和文件系统类型?** (`lsblk -f`, `blkid` 命令详解) 2. **在 `/etc/fstab` 中配置 NFS 挂载时,`soft`, `intr`, `timeo` 这些选项具体起什么作用?如何合理设置?** 3. **使用 `autofs` 按需挂载 Samba (CIFS) 共享时,配置文件应该如何编写?** 4. **如果 `/etc/fstab` 配置错误导致 Linux 系统无法启动,有哪些修复方法?** (Recovery Mode, 使用 Live CD/USB) 5. **除了开机自动挂载,如何让普通用户有权挂载和卸载特定的 USB 移动硬盘?** (`fstab` 的 `user`/`users` 选项结合 `udisks2`/`pmount`) 6. **`systemd mount unit` 和 `fstab` 的优先级关系是怎样的?如果两者都配置了同一个挂载点会怎样?** 7. **如何配置 Linux 开机自动挂载 Windows NTFS 分区并保证读写权限正常?** (安装 `ntfs-3g`, `fstab` 中的 `uid`, `gid`, `umask`/`fmask`/`dmask` 选项) 8. **使用 `autofs` 挂载用户家目录 (`/home`) 有什么好处?如何配置?** (常见的 LDAP/NIS + NFS 环境) [^1]: 引用来源: Linux 开机自动挂载硬盘的核心方法是通过配置 `/etc/fstab` 文件,并需先了解硬盘分区信息。 [^2]: 引用来源: 除了 `fstab`,也可在启动脚本如 `/etc/rc.local` 中使用 `mount` 命令,或在开发板环境中使用 `sysfs`。 [^3]: 引用来源: 配置 `/etc/fstab` 实现普通磁盘分区开机自动挂载的标准格式:`<设备> <挂载点> <文件系统类型> defaults 0 0`,其中 `defaults` 表示默认选项,`0 0` 表示无需备份和磁盘检查。 [^4]: 引用来源: 对于网络存储(如 NFS),可将 `mount` 命令写入 `/etc/rc.d/rc.local` 实现开机自动挂载,这是 `fstab` 之外的另一种有效方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值