web-dev-qa-db-ja.com

リモートVMで読み取り専用の原因となる壊れたfstabを修正する方法は?

AWSec2でコマンドを複数行貼り付けてfstabを壊しました。

ある種の奇跡によって、OSはまだ起動します。 mountの出力:

ec2-user@Host:~ $ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=1001720k,nr_inodes=250430,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
/dev/xvda1 on / type xfs (ro,relatime,attr2,inode64,noquota)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=27,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14220)
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)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=203952k,mode=700,uid=1000,gid=1000)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=203952k,mode=700)

私が試したもの:

ec2-user@Host:~ $ Sudo mount -o remount,rw /dev/xda1 /
Cannot create a temporary file: /var/tmp/scl5pGkRA
ec2-user@Host:~ $ Sudo remount / rw
Cannot create a temporary file: /var/tmp/sclUmQEPx
ec2-user@Host:~ $ Sudo mount -o rw,remount /
Cannot create a temporary file: /var/tmp/sclwlQGn3
ec2-user@Host:~ $ mount -o rw,remount /
mount: only root can use "--options" option
ec2-user@Host:~ $ su root
Password:
su: Authentication failure
ec2-user@Host:/tmp $ pkexec mount -o rw,remount /
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/usr/bin/mount' as the super user
Authenticating as: EC2 Default User (ec2-user)
Password:
polkit-agent-helper-1: pam_authenticate failed: Authentication failure
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized

ご覧のとおり、rootパスワードがないため、su入力できません。Sudo suSudoは一時ファイルを作成したいので。それで ?

1
v.oddou

さて、私はソフトな解決策を見つけられませんでした。

管理コンソールに移動し、同じネットワーク内に新しい仮想マシンを作成し、古いVMをオフにする必要がありました。

「ボリューム」に移動し、ECBディスクを取り外します。新しいVMに再接続すると、/dev/sdfが接続されます(何らかの理由でxvdfに名前が変更されました)。

そして、UUIDは同じなので、Sudo mount --rw -t xfs -o nouuid /dev/xvdf1 somedirectoryでマウントします

fstabをsudoedit somedirectory/etc/fstabで修正

umount、ログアウト、管理コンソールに戻り、新しいVMをシャットダウンします。 「ボリューム」に戻り、再度デタッチし、/dev/xvdaを使用して古いVM)に再接続します。

古いVMを再起動します。修繕。
これには1時間かかります: '(悲しいです

1
v.oddou