mktemp:无法通过模板“/tmp/virtualenvwrapper-initialize-hook-XXXXXXXXXX”创建文件:只读文件系统

Mar*_*ark 3 linux virtualenv virtualenvwrapper ubuntu-18.04

我最近在运行 Ubuntu 18.04 的 VM 上遇到了问题。我几个月来一直在使用同一个 VM 并且工作正常,然后突然当我尝试使用tab自动完成时我得到了错误,

-bash: cannot create temp file for here-document: Read-only file system
Run Code Online (Sandbox Code Playgroud)

我决定重新启动我的虚拟机,实际上我最终退出了虚拟机并重新启动了它,当虚拟机重新启动时,我得到了如下所示的错误。

mktemp: failed to create file via template ‘/tmp/virtualenvwrapper-initialize-hook-XXXXXXXXXX’: Read-only file system
touch: cannot touch '': No such file or directory
ERROR: virtualenvwrapper could not create a temporary file name.

??????????????????????????????????????????????????????????
?                npm update check failed                 ?
?          Try running with sudo or get access           ?
?          to the local update config store via          ?
? sudo chown -R $USER:$(id -gn $USER) /home/mark/.config ?
??????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

我最终sudo chown按照建议运行了命令,但仍然存在同样的问题。

我一直在寻找解决方案,我找到的最接近的是 https://www.digitalocean.com/community/questions/tmp-folder-deleted。但是我已经验证了/temp文件夹的权限,它似乎没问题。

drwxrwxrwt 10 root root 4096 Dec 30 17:01 /tmp
Run Code Online (Sandbox Code Playgroud)

有没有人有什么建议?我的 virtualenvwrapper 有什么问题吗?

边注:

我看到有些人谈论磁盘空间不足,但我只使用了 21%。

Filesystem      Size  Used Avail Use% Mounted on
udev            967M     0  967M   0% /dev
tmpfs           200M  5.9M  194M   3% /run
/dev/sda2        98G   19G   75G  21% /
tmpfs           997M     0  997M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           997M     0  997M   0% /sys/fs/cgroup
/dev/loop0       90M   90M     0 100% /snap/core/8268
/dev/loop1       90M   90M     0 100% /snap/core/8213
tmpfs           200M     0  200M   0% /run/user/1000
Run Code Online (Sandbox Code Playgroud)

mount 输出:

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=989248k,nr_inodes=247312,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204132k,mode=755)
/dev/sda2 on / type ext4 (ro,relatime,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=44,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14041)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
configfs on /sys/kernel/config type configfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/var/lib/snapd/snaps/core_8268.snap on /snap/core/8268 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/core_8213.snap on /snap/core/8213 type squashfs (ro,nodev,relatime,x-gdu.hide)
lxcfs on /var/lib/lxcfs type fuse.lxcfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204132k,mode=700,uid=1000,gid=1000)
Run Code Online (Sandbox Code Playgroud)

bk2*_*204 7

您收到的错误表明您正在尝试在只读文件系统上写入。如果查看 的mount输出/,则romount 选项表明它是只读的。

您的文件系统是只读的通常有几个原因,但在这种情况下,很可能是 ext4 文件系统在遇到文件系统错误时的行为。默认值是重新挂载只读文件系统以避免进一步损坏但允许系统继续运行。这种情况下的替代方案是忽略错误和恐慌,这两者通常都不太理想。

您可以通过运行来验证这一点,dmesg以查看内核是否报告了任何文件系统错误并重新安装了文件系统。如果是这样,您通常可以重新启动系统,并且fsck会自动发生。在某些情况下,您可能需要从不同的介质(例如 Live CD)启动以执行fsck(通过运行e2fsck -f /dev/sda2),因为在安装文件系统时并非所有错误都可以修复。