[英]Attaching and mounting existing EBS volume to EC2 instance filesystem issue
我的舊 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
我知道我應該將文件系統指定為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
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
順便說一句,'mounting read-only' 消息也讓我擔心,但我還沒有研究它,因為我根本無法安裝卷。
提前致謝!
🥇 掛載分區(如果磁盤已分區) :
sudo mount /dev/xvdf1 /vol -t ext4
掛載磁盤(如果未分區) :
sudo mount /dev/xvdf /vol -t ext4
在哪里:
/dev/xvdf
更改為正在掛載的 EBS Volume設備/vol
更改為您要掛載到的文件夾。ext4
是正在掛載的卷的文件系統類型檢查您的 mount 命令以獲取正確的 EBS 卷設備名稱和文件系統類型。 以下將全部列出:
sudo lsblk --output NAME,TYPE,SIZE,FSTYPE,MOUNTPOINT,UUID,LABEL
如果您的 EBS 卷顯示帶有附加partition
,請掛載該partition
; 不是磁盤。
如果它沒有顯示,您沒有在 AWS Web 控制台中Attach
您的 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
在添加新的 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
就是這樣,您將在那里使用的卷附加到您的現有實例。 信用
我注意到由於某種原因該卷位於/dev/xvdf1
,而不是/dev/xvdf
。
使用
sudo mount /dev/xvdf1 /vol -t ext4
像魅力一樣工作
遇到了這個問題,現在搞定了
[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 上。 有效。
對我來說,安裝卷時出現重復的 UUID 錯誤,所以我使用了“-o nouuid”選項。
例如 mount -o nouuid /dev/xvdf1 /mnt
我從系統日志中找到了線索,在 CentOs 上,/var/log/messages 並發現了錯誤:內核:XFS (xvdf1): Filesystem has duplicate UUID f41e390f-835b-4223-a9bb-9b45984ddf8d - can't mount
首先運行以下命令
lsblk /dev/xvdf
輸出將如下所示
名稱 MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdf 202:80 0 10G 0 磁盤
├─xvdf1 202:81 0 1M 0 部分
└─xvdf2 202:82 0 10G 0 部分
然后,檢查尺寸,然后安裝它。 在上述情況下,像下面這樣安裝它
掛載 /dev/xvdf2 /文件夾名
您不需要從快照創建新創建的卷的文件系統。只需附加卷並將卷掛載到您想要的文件夾。 我已將新卷附加到先前刪除卷的同一位置,並且工作正常。
[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
我通常通過在創建 ext4 FS 時預先定義 UUID 來堅持,我在用戶數據上添加一個腳本並啟動實例,工作得很好,沒有任何問題:
前腳本:
#!/bin/bash
# Create the directory to be mounted
sudo mkdir -p /data
# Create file system with pre-defined & Label (edit the device name as needed)
sudo mkfs -U aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -L DATA -t ext4 /dev/nvme1n1
# Mount
sudo mount /dev/nvme1n1 /data -t ext4
# Update the fstab to persist after reboot
sudo su -c "echo 'UUID=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa /data ext4 defaults,discard,nofail 0 0' >> /etc/fstab"
對我來說,有一些神秘的文件導致了這個問題。
對我來說,我必須使用以下命令清除目錄。
sudo mkfs -t ext3 /dev/sdf
警告:這可能會刪除您保存的文件。 所以你可以運行ls
來確保你不會丟失重要的保存文件
首先使用“lsblk -f”命令檢查文件系統類型,在我的例子中是“XFS”
#lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
xvda
├─xvda1
├─xvda2 vfat FAT16 EFI 31C3-C85B 17.1M 14% /boot/efi
└─xvda3 xfs ROOT 6f6ccaeb-068f-4eb7-9228-afeb8e4d25df 7.6G 24% /
xvdf
├─xvdf1
├─xvdf2 vfat FAT16 EFI 31C3-C85B
└─xvdf3 xfs ROOT 6f6ccaeb-068f-4eb7-9228-afeb8e4d25df 5.4G 46% /mnt/da
根據文件系統類型修改您的命令。
mount -t xfs -o nouuid /dev/xvdf3 /mnt/data/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.