web-dev-qa-db-ja.com

既存のEBSボリュームをEC2インスタンスのファイルシステムにアタッチしてマウントする問題

古いEC2インスタンスで不明な問題が発生したため、sshを使用できなくなりました。そのため、古いボリュームのスナップショットから新しいEBSボリュームを作成し、それを新しいインスタンスにアタッチしてマウントしようとしました。ここに私がやったことがあります:

  1. 古いボリュームのスナップショットから新しいボリュームを作成しました。
  2. 新しいEC2インスタンスを作成し、/dev/xvdf(または/dev/sdf)としてボリュームをアタッチしました
  3. インスタンスに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
51
Gabriel Rebello

ワンライナー


????パーティションをマウントします(ディスクがパーティション化されている場合)

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をマウントします。ディスクではない


volume️ボリュームがリストにない場合

表示されない場合は、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
84
FactoryAidan

何らかの理由で、ボリュームが/dev/xvdf1ではなく/dev/xvdfにあることに気付きました。

を使用して

Sudo mount /dev/xvdf1 /vol -t ext4

魔法のように働いた

24
Eric Wilson

この問題は、新しい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

これで、既存のインスタンスに使用するボリュームが接続されました。 クレジット

19
Gideon Maina

私はこの問題に遭遇しました、そして今私はそれを得ました、

[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(タイプはディスク)

12
Webb Lu

別の問題がありました。ここでdmesgログをチェックしたとき、問題は既存のルートボリュームのUUIDと別のec2のルートボリュームのUUIDにありました。これを修正するために、別のLinuxタイプのec2にマウントしました。動いた。

2
vivek9018

スナップショットから新しく作成されたボリュームのファイルシステムを作成する必要はありません。単にボリュームを接続し、目的のフォルダにボリュームをマウントします。以前に削除したボリュームと同じ場所に新しいボリュームを接続しましたが、正常に機能していました。

[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
0
Naveen Kerati