すでに使用可能なディスクで誤ってmkfsコマンドを実行する

すでに使用可能なディスクで誤ってmkfsコマンドを実行する

私のLinodeサーバーには350Gbボリュームが接続されています。スペースが足りなくなったため、ダッシュボードで400 GBにサイズ変更してサーバーを再起動しました。その後、df -hコマンドを使用してディスクのサイズが変更されたことを確認しましたが、まだ96%使用されているとマークされます。

そのため、まず次のようにボリュームをアンマウントしてから、umount /var/www/diskこのコマンドを実行しました。 sudo mkfs -t ext4 /dev/sdcボリュームを再マウントし、lsコマンドを使用してファイルを確認した後、見つからないファイルと見つからないファイル以外には何もありませんでした。 df -hを使用すると、ディスクは400GB、20GBを使用していますが、紛失+見つかったファイル以外は何も見えません。

ダッシュボードでボリュームのサイズを変更した後、サーバーを再起動するまで端末に接続し続け、使用したコマンド全体とその出力を上にスクロールしてコピーしました。データが非常に重要なので、データを再インポートするのに役立ちます。私はあなたに非常に感謝します。

root@ubuntu:/var/www/html/processing# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        78G   48G   27G  65% /
devtmpfs        2.0G  4.0K  2.0G   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            392M  392K  392M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sdc        345G  315G   15G  96% /var/www/disk

root@ubuntu:/var/www/html/processing# lsblk
NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb    8:16   0  1004M  0 disk [SWAP]
sdc    8:32   0   400G  0 disk /var/www/disk
sda    8:0    0    79G  0 disk /

root@ubuntu:/var/www/html/processing# sudo mkfs -t ext4 /dev/sdc
mke2fs 1.42.9 (4-Feb-2014)
/dev/sdc is entire device, not just one partition!
Proceed anyway? (y,n) y
/dev/sdc is mounted; will not make a filesystem here!
root@ubuntu:/var/www/html/processing# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        78G   48G   27G  65% /
devtmpfs        2.0G  4.0K  2.0G   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            392M  392K  392M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sdc        345G  315G   15G  96% /var/www/disk

root@ubuntu:/var/www/html/processing# sudo mkfs -t ext4 /dev/sdc
mke2fs 1.42.9 (4-Feb-2014)
/dev/sdc is entire device, not just one partition!
Proceed anyway? (y,n) y
/dev/sdc is mounted; will not make a filesystem here!

root@ubuntu:/var/www/html/processing# sudo killall php screen

root@ubuntu:/var/www/html/processing# sudo umount /disk
umount: /disk: not found

root@ubuntu:/var/www/html/processing# sudo umount /var/www/disk
umount: /var/www/disk: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

root@ubuntu:/var/www/html/processing# fuser -kim /var/www/disk
/var/www/disk:        1206
Kill process 1206 ? (y/N) y

root@ubuntu:/var/www/html/processing# sudo umount /var/www/disk

root@ubuntu:/var/www/html/processing# sudo mkfs -t ext4 /dev/sdc
mke2fs 1.42.9 (4-Feb-2014)
/dev/sdc is entire device, not just one partition!
Proceed anyway? (y,n) y
Discarding device blocks: done                            
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
26214400 inodes, 104857600 blocks
5242880 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
3200 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done     


root@ubuntu:/var/www/html/processing# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        78G   48G   27G  65% /
devtmpfs        2.0G  4.0K  2.0G   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            392M  392K  392M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user

root@ubuntu:/var/www/html/processing# lsblk
NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb    8:16   0  1004M  0 disk [SWAP]
sdc    8:32   0   400G  0 disk 
sda    8:0    0    79G  0 disk /

root@ubuntu:/var/www/html/processing# sudo mount /dev/sdc/ /var/www/disk

root@ubuntu:/var/www/html/processing# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        78G   48G   27G  65% /
devtmpfs        2.0G  4.0K  2.0G   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            392M  392K  392M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sdc        394G   71M  374G   1% /var/www/disk

root@ubuntu:/var/www/html/processing# cd /var/www/disk

root@ubuntu:/var/www/disk# ls
lost+found

root@ubuntu:/var/www/disk# sudo umount /var/www/disk
umount: /var/www/disk: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

root@ubuntu:/var/www/disk# fuser -kim /var/www/disk
/var/www/disk:        1573c
Kill process 1573 ? (y/N) y
Connection to 45.79.22.163 closed.

zeeshan@zeeshan-VirtualBox:~$ sudo ssh [email protected]
[email protected]'s password: 
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 5.4.10-x86_64-linode132 x86_64)

 * Documentation:  https://help.ubuntu.com/
New release '16.04.6 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Thu Feb 27 07:40:09 2020 from 119.155.0.120

root@ubuntu:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        78G   48G   27G  65% /
devtmpfs        2.0G  4.0K  2.0G   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            392M  392K  392M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sdc        394G   71M  374G   1% /var/www/disk

root@ubuntu:~# fuser -kim /var/www/disk

root@ubuntu:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        78G   48G   27G  65% /
devtmpfs        2.0G  4.0K  2.0G   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            392M  392K  392M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sdc        394G   71M  374G   1% /var/www/disk

root@ubuntu:~# sudo killall php screen
php: no process found
screen: no process found

答え1

申し訳ありません。すべてが消え、あなた(またはあなたのホスト)がバックアップを持っていない場合は復元する方法はありません。

回復はmkfs本当に難しいですが、次のメッセージが表示された場合は完全に不可能です。

Discarding device blocks: done

このようにして、すべてのデータが消えます。そして、このメッセージはブロックが実際に削除された場合にのみ表示されます。削除をサポートしていないデバイスでは、メッセージはまったく表示されません。

mke2fsmkfs.ext4およびその他)は常に完全に廃棄する必要があります。これが発生しないようにするには、このnodiscardオプションを明示的に指定する必要があります。マンページから:

   -E extended-options
   [...]
               discard
                      Attempt to discard blocks at mkfs time (discarding
                      blocks initially is useful on solid state devices
                      and sparse / thin-provisioned storage). When the
                      device advertises that discard also zeroes data (any
                      subsequent read after the discard and before write
                      returns zero), then mark all not-yet-zeroed inode
                      tables as zeroed. This significantly speeds up
                      filesystem initialization. This is set as default.

               nodiscard
                      Do not attempt to discard blocks at mkfs time.

SSDは削除をサポートしますが、イメージファイル(スパスファイルをサポートするファイルシステム)、ループデバイス、および一般的な仮想ハードドライブイメージも削除をサポートします。これにより、仮想マシンは未使用のブロックを破棄し、ホストは未使用のスペースを他の目的に使用できます。一部のホストでは、十分な空き容量がある場合はサーバー状態のスナップショットを作成できます。しかし、これは通常手動プロセスなので、今は役に立ちません。


技術的には、データは削除をサポートしていないホストハードドライブの「空き容量」のどこかにまだ存在する可能性があります。またはホストSSD(後でホスト削除が発生した場合)fstrim。そのため、ホストホスティングホストサーバー制御(VPS)でこれが発生した場合はフィルタリングを試みることができますが、VPS /クラウドホスティングサービスではこれを行うことはできません。自分が捨てたデータと他の顧客が捨てたデータを区別できないため、作業を完了できないだけでなく、プライバシーを理由に拒否します。同じホスト上の他の顧客の継続的な書き込みアクティビティによってデータが実際に上書きされる可能性があるため、どちらの場合も議論の余地があります。

関連情報