更新到 15.04 后文件系统变成只读了?

Lew*_*ntz 8 tmp fsck fdisk 15.04

我愚蠢地决定从 14.04LTS 更新到 14.10,然后是 15.04。

自从这样做以来,我的网站已关闭,文件系统已变为只读。我不知道出了什么问题,因为更新成功完成。

这是我迄今为止发现的:

    root@lew:/# service apache2 status
apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2)
   Active: failed (Result: exit-code) since Sun 2015-07-12 08:36:18 EDT; 31min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 901 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)

Jul 12 08:36:18 lew.im systemd[1]: Starting LSB: Apache2 web server...
Jul 12 08:36:18 lew.im apache2[901]: * Starting web server apache2
Jul 12 08:36:18 lew.im apache2[901]: mktemp: failed to create file via template ‘/tmp/tmp.XXXXXXXXXX’: Read-only file system
Jul 12 08:36:18 lew.im apache2[901]: /etc/init.d/apache2: 91: /etc/init.d/apache2: cannot create : Directory nonexistent
Jul 12 08:36:18 lew.im apache2[901]: *
Jul 12 08:36:18 lew.im apache2[901]: * The apache2 configtest failed.
Jul 12 08:36:18 lew.im systemd[1]: apache2.service: control process exited, code=exited status=1
Jul 12 08:36:18 lew.im systemd[1]: Failed to start LSB: Apache2 web server.
Jul 12 08:36:18 lew.im systemd[1]: Unit apache2.service entered failed state.
Jul 12 08:36:18 lew.im systemd[1]: apache2.service failed.
Run Code Online (Sandbox Code Playgroud)

然后 fdisk -l:

root@lew:/# fdisk -l

Disk /dev/vda: 20 GiB, 21476933632 bytes, 41947136 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
Disklabel type: gpt
Disk identifier: 06F7B3C9-8E13-42CD-AD52-7A02301B6F16

Device     Start      End  Sectors Size Type
/dev/vda1   2048 41945087 41943040  20G Linux filesystem
Run Code Online (Sandbox Code Playgroud)

和 fsck /

root@lew:/# sudo fsck /
fsck from util-linux 2.25.2
fsck.ext4: Unable to resolve 'UUID=815063a9-c956-44a6-ab11-05e1d0bb3a58'
Run Code Online (Sandbox Code Playgroud)

我是这一切的初学者,但从我所读到的,我需要在 fstab 中修复一些东西?为什么更新破坏了这一点,可能出了什么问题?

我通过 SSH 连接到该服务器,因为它托管在 DigitalOcean 中。

编辑:

布莱基德

root@lew:~# blkid
/dev/vda1: LABEL="DOROOT" UUID="18254707-08e8-494e-b456-938592928a5e" TYPE="ext4" PTTYPE="dos" PARTLABEL="primary" PARTUUID="8c484e81-f919-4803-acc7-1447fdd81b45"
Run Code Online (Sandbox Code Playgroud)

root@lew:~# mount
/dev/vda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,nodev,noexec,nosuid)
sysfs on /sys type sysfs (rw,nodev,noexec,nosuid)
none on /sys/fs/cgroup type tmpfs (rw,uid=0,gid=0,mode=0755,size=1024)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,nodev,noexec,nosuid,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,nodev,noexec,nosuid,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,noexec,nodev,none,name=systemd)
Run Code Online (Sandbox Code Playgroud)

root@lew:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/vda1 during installation
#UUID=815063a9-c956-44a6-ab11-05e1d0bb3a58 /               ext4    errors=remount-ro 0       1
UUID=06F7B3C9-8E13-42CD-AD52-7A02301B6F16 /               ext4    errors=remount-rw 0       1

/swapfile       none    swap    sw      0       0
Run Code Online (Sandbox Code Playgroud)

小智 8

该解决方案由@Lewis Lebentz 于 7 月 26 日 15:00发布在评论中。

我会转述一下,以便任何寻找答案的人都可以轻松地在这里找到答案。但是@Lewis 应该自己发布答案,将其标记为已回答,您将获得应有的荣誉。

解决方案: 开一张支持票,让 Digital Ocean 挂载恢复 ISO(这是一个只有他们才能挂载的特殊 ISO)。

  1. 选择 1 以挂载文件系统和编辑/etc/fstab. 注意:使用控制台并运行nanovi /mnt/etc/fstab。或者,您可以启用 SSH 和网络(在恢复选项中)以使用您的终端登录(请参阅说明),尽管我自己没有尝试过。
  2. 将那里的 UUID 更改为 blkid 的输出,保存。
  3. 要求 DO 移除恢复磁盘。重新启动,您应该可以再次访问!

  • 您不需要使用恢复模式;`mount -rw -o remount UUID=18254707-08e8-494e-b456-938592928a5e /`,编辑`/etc/fstab`,然后重启。 (11认同)

小智 5

您可以按照 ændrük 在评论中发布的内容进行操作:

$ mount -rw -o remount /dev/vda1 /
$ sed s/wrong_uuid/correct_uuid/ -i /etc/fstab
Run Code Online (Sandbox Code Playgroud)

..然后再次启动你的linux!确保使用设备名称更改 vda1。在 sed 命令中,当然是正确的 uuid!