Menyimpan partisi di Debian ketika terjadi kesalahan

Selamat siang sayang!

Saya akan memberitahu Anda yang cepat yang dapat menyebabkan hilangnya data lengkap di mesin virtual, tetapi jalan keluarnya masih ditemukan dengan: parted

Sumber data:
OS: Debiab 9 64bit
FS: ext4 tanpa LVM
Tujuan: Untuk memperluas FS pada mesin virtual dari 14GB ke 60GB

Pada prinsipnya, untuk administrator tugas ini sepele, tetapi kadang-kadang bintang-bintang dapat berkumpul sehingga semuanya tidak berjalan seperti yang kita inginkan. Di bawah potongan, saya akan mencoba untuk memulihkan jalannya acara, yang menyebabkan fakta bahwa admin pertama menerima hampir tidak ada VM yang berfungsi.


Hari 1:
Admin diberi tugas yang sangat sederhana - Anda perlu memperluas ukuran FS pada VM. Sebelumnya, pekerjaan telah dilakukan untuk memperluas image disk untuk VM ini, dan masalahnya tetap kecil - untuk memperluas ukuran FS pada VM.

Struktur FS pada VM:
/ boot - 56Mb
/ - semua ruang tersisa - ext4

Karena mesin virtual dibuat dari templat, tidak ada LVM, yang tentu saja akan menyederhanakan seluruh prosedur.

Dan admin pada Kamis malam mulai melakukan tugas. Langkah pertamanya adalah mem-boot VM menggunakan image iso - SystemRescue. Setelah berhasil memuat VM dengan bantuan iso-image, administrator mulai bekerja dan dengan bantuan fdisk menghapus bagian / (/ dev / vda2) , yang benar karena perlu diperluas. Setelah menghapus partisi (/ dev / vda2), admin membuat partisi baru - / dev / vda2 dan di sini kesalahan pertama terjadi - admin membuat partisi extended terlebih dahulu dan baru kemudian menciptakan primary dan setelah membandingkan markup baru, keluar dari fdisk dan mencoba me-mount partisi:

gambar

Karena tata letak disk telah berubah dan awal dan akhir partisi / dev / vda5 telah berubah, kesalahan yang diharapkan telah muncul yang menunjukkan bahwa tidak ada superblock yang ditemukan atau salah. Kesalahannya cukup serius, dan jika Anda mendekati solusi yang salah, Anda dapat kehilangan file atau membuatnya dipukuli. Anda tentu saja dapat memutar kembali, tetapi masalahnya juga terletak pada kenyataan bahwa administrator tidak mengambil tangkapan layar dari tata letak disk sebelumnya sebelum pekerjaannya.

Karena partisi tidak dapat dipasang ... administrator berusaha untuk memperbaiki situasi dengan menghapus partisi yang ia buat dan membuat primer baru, tetapi karena itu tidak berarti akhir kumpulan dengan data, semua upayanya mengarah ke hasil yang sama:
Superblock tidak valid .

Setelah beberapa upaya untuk memulihkan partisi sendiri, admin pertama meminta bantuan dari admin kedua.

Pertama, admin kedua meninggalkan VM dan menyalin gambar disk saat ini bernama vm_bad_disk. Selanjutnya, VM naik dari versi OS yang sama - Debian 9 64bit dan terhubung dengan disk kedua - vm_bad_disk.

Setelah masuk ke VM baru melalui ssh - kami melihat daftar disk di VM:
root@recovery:~# fdisk -l
Disk /dev/vda: 4.9 GiB, 5242880000 bytes, 10240000 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
Disklabel type: dos
Disk identifier: 0x09dea38e

Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 499711 497664 243M 83 Linux
/dev/vda2 501758 10237951 9736194 4.7G 5 Extended
/dev/vda5 501760 10237951 9736192 4.7G 83 Linux

Disk /dev/vdb: 58.6 GiB, 62914560000 bytes, 122880000 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
Disklabel type: dos
Disk identifier: 0xe8c76303

Device Boot Start End Sectors Size Id Type
/dev/vdb1 * 2048 194559 192512 94M 83 Linux
/dev/vdb2 196606 30717951 30521346 14.6G 5 Extended
/dev/vdb5 198656 30717951 30519296 14.6G 83 Linux


Inilah / dev / vdb - ini adalah vm_bad_disk kami. Hal pertama, admin kedua menghapus / dev / vdb2 dan / dev / vdb5 dan mencoba membuat / dev / vdb2 dengan awal 194560 dan perkiraan akhir, tetapi juga mendapat:
Superblock tidak valid .

Untuk bekerja dengan partisi / dev / vdb, utilitas parted diinstal untuk bekerja dengan partisi dengan lebih mudah.
Kami ulangi tindakan dengan menghapus / dev / vdb2 sudah di bagian dan melakukan bantuan.

Perhatian administrator tertuju pada perintah penyelamatan, yang memungkinkan Anda untuk mengatur awal dan akhir partisi untuk menemukan FS di dalamnya. Tidak ada yang rumit dalam sintaks perintah:
Cukup ketikkan parted:
> penyelamatan
Sistem akan bertanya:
Mulai - itu ditunjukkan 194560
Sekarang administrator perlu menghitung Akhir (akhir partisi). Karena administrator awalnya tahu bahwa ukuran seluruh disk adalah 14GB dan bahwa 1 sektor adalah 512 byte ... maka perhitungan berikut dilakukan:
14 GB adalah sekitar 15032385536 byte, kami menghitung jumlah sektor:
15032385536/512 = 29360128
Nilai ini harus ditentukan sebagian:
Akhir 29360128

Tekan Enter dengan berani dan tunggu hasilnya ... Dalam hal ini, saya tidak perlu menunggu lama dan berpisah menunjukkan bahwa FS ditemukan dan apakah layak melakukan perubahan - kami menjawab YA

Parted akan melakukan perubahan yang diperlukan dan admin akan keluar dari parted.

Admin kembali ke baris perintah sistem dan melakukan:
mount / dev / vdb2 / mnt

Partisi dipasang tanpa masalah dan menunjukkan bahwa ukurannya sekitar 14GB, yang benar, karena FS belum diperluas. Admin dengan cepat memeriksa file dan semuanya mengatakan bahwa tidak ada artefak dan file yang rusak pada pandangan pertama.

Karena partisi terlihat live, admin melakukan: umount / dev / vdb2 dan memulai:
e2fsck / dev / vdb2 setelah pemeriksaan selesai - menjalankan perintah untuk memperluas bagian:
resize2fs / dev / vdb2

Operasi berlalu tanpa masalah dan admin me-mount partisi lagi untuk memastikan semuanya OK:
mount / dev / vdb2 / mnt

Partisi dipasang tanpa kesalahan dan menggunakan perintah df -p , ia melihat partisi yang sudah diperluas.

Administrator sekali lagi memeriksa file dan direktori pada batch ini dan memutuskan bahwa semuanya OK dengan FS dan file.

Administrator menjalankan perintah: shutdown -p sekarang dan menghapus drive yang dipetakan dari VM yang dengannya tindakan tersebut dilakukan.

Ini menyimpan gambar disk VM asli, dengan mana semuanya dimulai dalam penyimpanan terpisah dan menggantinya dengan gambar disk yang benar dan mengirimkan VM untuk boot.

VM melakukan booting tanpa masalah dan semua data ada di tempatnya.

Moral:
1) Ambil SnapShot sebelum bertindak
2) Ambil tangkapan layar dari pengaturan yang diinginkan (dalam hal ini, markup partisi)
3) Sebelum bekerja, buat cadangan file penting

Source: https://habr.com/ru/post/id446252/


All Articles