古いEC2インスタンスで不明な問題が発生したため、sshを使用できなくなりました。そのため、古いボリュームのスナップショットから新しいEBSボリュームを作成し、それを新しいインスタンスにアタッチしてマウントしようとしました。ここに私がやったことがあります:
/dev/xvdf
(または/dev/sdf
)としてボリュームをアタッチしましたインスタンスにSSH接続し、次のコマンドで古いボリュームをマウントしようとしました。
$ Sudo mkdir -m 000 /vol $ Sudo mount /dev/xvdf /vol
出力は次のとおりです。
mount: block device /dev/xvdf is write-protected, mounting read-only
mount: you must specify the filesystem type
これで、filestemをext4
として指定する必要がありますが、ボリュームには多くの重要なデータが含まれているため、$ Sudo mkfs -t ext4 /dev/xvdf
でフォーマットすることはできません。それでも、データを保存すると同時にファイルシステムを指定する他の方法は知りません。私はそれについて多くのことを検索しましたが、現在は迷っています。
ちなみに、「読み取り専用」としてのマウントも心配ですが、ボリュームをまったくマウントできないため、まだ検討していません。
前もって感謝します!
編集:
Sudo mount /dev/xvdf /vol -t ext4
(フォーマットなし)を実行すると、次の結果が得られます。
mount: wrong fs type, bad option, bad superblock on /dev/xvdf,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
そしてdmesg | tail
は私に与えます:
[ 1433.217915] EXT4-fs (xvdf): VFS: Can't find ext4 filesystem
[ 1433.222107] FAT-fs (xvdf): bogus number of reserved sectors
[ 1433.226127] FAT-fs (xvdf): Can't find a valid FAT filesystem
[ 1433.260752] EXT4-fs (xvdf): VFS: Can't find ext4 filesystem
[ 1433.265563] EXT4-fs (xvdf): VFS: Can't find ext4 filesystem
[ 1433.270477] EXT4-fs (xvdf): VFS: Can't find ext4 filesystem
[ 1433.274549] FAT-fs (xvdf): bogus number of reserved sectors
[ 1433.277632] FAT-fs (xvdf): Can't find a valid FAT filesystem
[ 1433.306549] ISOFS: Unable to identify CD-ROM format.
[ 2373.694570] EXT4-fs (xvdf): VFS: Can't find ext4 filesystem
????パーティションをマウントします(ディスクがパーティション化されている場合):
Sudo mount /dev/xvdf1 /vol -t ext4
ディスクをマウントします(パーティション分割されていない場合):
Sudo mount /dev/xvdf /vol -t ext4
どこ:
/dev/xvdf
は、マウントされているEBSボリュームデバイスに変更されます/vol
は、マウントしたいfolderに変更されます。ext4
は、マウントされているボリュームのファイルシステムタイプcorrectEBSボリュームデバイス名およびファイルシステムタイプ。以下にすべてをリストします。
Sudo lsblk --output NAME,TYPE,SIZE,FSTYPE,MOUNTPOINT,UUID,LABEL
EBSボリュームにpartition
が添付されて表示される場合は、partition
をマウントします。ディスクではない
表示されない場合は、Attach
AWSウェブコンソールのEBSボリュームを表示していません
EC2インスタンスが再起動すると、これらのデバイスは再びマウント解除されます。
起動時にそれらを再びマウントする方法は、サーバーの/etc/fstab
ファイルにボリュームを追加することです。
????注意:????/etc/fstab
ファイルを破損すると、システムが起動できなくなります。 AWSの短い記事を読んで、正しく実行したことを確認してください。
https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html#ebs-mount-after-reboot
最初の:
上記のlsblk
コマンドを使用して、ボリュームのUUID
およびFSTYPE
を見つけます。
秒:
元のfstab
ファイルのコピーを保管してください。
Sudo cp /etc/fstab /etc/fstab.original
第三:Sudo nano /etc/fstab
にボリュームの行を追加します。
fstab
のフィールドは「タブ区切り」で、各行には次のフィールドがあります。
<UUID> <MOUNTPOINT> <FSTYPE> defaults,discard,nofail 0 0
以下に例を示します。私自身のfstab
は次のようになります。
LABEL=cloudimg-rootfs / ext4 defaults,discard,nofail 0 0
UUID=e4a4b1df-cf4a-469b-af45-89beceea5df7 /var/www-data ext4 defaults,discard,nofail 0 0
これで完了です。以下を実行して、作業のエラーを確認します。
Sudo mount --all --verbose
物事が次のような場合は、このようなものが表示されますか?
/ : ignored
/var/www-data : already mounted
何らかの理由で、ボリュームが/dev/xvdf1
ではなく/dev/xvdf
にあることに気付きました。
を使用して
Sudo mount /dev/xvdf1 /vol -t ext4
魔法のように働いた
この問題は、新しい16GBボリュームを追加して既存のインスタンスにアタッチした後にも発生しました。まず、現在使用しているディスクを知る必要があります
Sudo fdisk -l
次のような出力が表示され、ディスク(ボリューム)に関する詳細情報が表示されます。
Disk /dev/xvda: 12.9 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders, total 25165824 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
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/xvda1 * 16065 25157789 12570862+ 83 Linux
Disk /dev/xvdf: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders, total 33554432 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
Disk identifier: 0x00000000
Disk /dev/xvdf doesn't contain a valid partition table
ご覧のとおり、新しく追加されたディスク/ dev/xvdfが存在します。使用可能にするには、その上にファイルシステムを作成し、マウントポイントにマウントする必要があります。次のコマンドでそれを達成できます
Sudo mkfs -t ext4 /dev/xvdf
新しいファイルシステムを作成すると、ボリューム内のすべてがクリアされるため、重要なデータのない新しいボリュームでこれを行います
次に、/ mntフォルダーの下のディレクトリにマウントします。
Sudo mount /dev/xvdf /mnt/dir/
実行して、インスタンスにボリュームをマウントしたことを確認します
df -h
これはあなたが持っているべきものです
Filesystem Size Used Avail Use% Mounted on
udev 486M 12K 486M 1% /dev
tmpfs 100M 400K 99M 1% /run
/dev/xvda1 12G 5.5G 5.7G 50% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 497M 0 497M 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvdf 16G 44M 15G 1% /mnt/ebs
これで、既存のインスタンスに使用するボリュームが接続されました。 クレジット
私はこの問題に遭遇しました、そして今私はそれを得ました、
[ec2-user@ip-172-31-63-130 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 8G 0 disk
└─xvdf1 202:81 0 8G 0 part
partition
をマウントする必要があります
/ dev/xvdf1(タイプはパーティションです)
disk
をマウントしない
/ dev/xvdf(タイプはディスク)
別の問題がありました。ここでdmesgログをチェックしたとき、問題は既存のルートボリュームのUUIDと別のec2のルートボリュームのUUIDにありました。これを修正するために、別のLinuxタイプのec2にマウントしました。動いた。
スナップショットから新しく作成されたボリュームのファイルシステムを作成する必要はありません。単にボリュームを接続し、目的のフォルダにボリュームをマウントします。以前に削除したボリュームと同じ場所に新しいボリュームを接続しましたが、正常に機能していました。
[ec2-user@ip-x-x-x-x vol1]$ Sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 10G 0 disk /home/ec2-user/vol1