Singkatnya, saya perlu melakukan ini semua secara otomatis saat boot (embedded system).
Teknisi kami akan mem-flash gambar ke perangkat produksi. Gambar-gambar ini akan berisi tabel partisi kecil. Saat boot, saya perlu secara otomatis memperluas partisi terakhir (# 3) untuk menggunakan semua ruang yang tersedia pada disk.
Inilah yang saya dapatkan ketika saya melihat ruang kosong pada disk saya.
> parted /dev/sda print free
Model: Lexar JumpDrive (scsi)
Disk /dev/sda: 32.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 25.3MB 24.2MB fat16 primary legacy_boot
25.3MB 26.2MB 922kB Free Space
2 26.2MB 475MB 449MB ext4 primary
3 475MB 1549MB 1074MB ext4 primary
1549MB 32.0GB 30.5GB Free Space
Saya perlu memperluas partisi 3 dengan N (30,5GB) jumlah byte
Bagaimana saya melakukan langkah ini secara otomatis, tanpa prompt? Ini perlu bekerja dengan ukuran ruang dinamis yang tersedia setelah partisi ke-3.
resizepart
perintah, dan itu berhasil, tetapi membutuhkan ukuran yang tepat. Saya membutuhkannya untuk menjadi dinamis.resize2fs
mungkin apa yang saya cari. linux.die.net/man/8/resize2fsJawaban:
Dalam versi saat ini
parted
,resizepart
harus berfungsi untuk partisi (parted
mengerti100%
atau hal-hal seperti-1s
, yang terakhir juga perlu--
menghentikan opsi penguraian pada cmdline). Untuk menentukan nilai yang tepat Anda dapat menggunakanunit s
,print free
.resize2fs
datang setelahnya untuk sistem file.Versi lama
parted
memilikiresize
perintah yang akan mengubah ukuran partisi dan sistem file sekaligus, bahkan berhasilvfat
.Dalam modifikasi ereader Kobo saya menggunakan ini untuk mengubah ukuran partisi ke-3 dari memori internal ke maksimum: (itu secara membabi buta menganggap tidak ada partisi ke-4 dan tabel msdos dan sebagainya)
Jadi, Anda juga dapat memperoleh nilai dari
/sys/block/.../
jika kernel mendukungnya. Tetapiparted
menghapusresize
perintah sehingga Anda harus melakukan dua langkah sekarang,resizepart
untuk menumbuhkan partisi, dan alat apa pun yang disediakan sistem file Anda untuk menumbuhkannya, sepertiresize2fs
untukext*
.sumber
parted
mendukung ekstensi otomatis dari baris perintah? Karena, tidak mendukung secara interaktif. Jika dijalankan secara interaktif, ia akan menanyakan apakah Anda ingin memperbaiki tabel partisi GPT agar sesuai dengan ukuran disk (jenisfix
), dan kemudian Anda dapat menjalankanresizepart 3 -1
. Saya sudah berusaha mencari cara untuk melakukannya dari baris perintah.Karena skrip tidak dapat dipisah dengan benar (meminta konfirmasi karena partisi telah dipasang dan bertentangan dengan jawaban lain yang saya temukan tidak mengerti
-1s
atau100%
), saya baru saja menemukan alat growpart yang melakukan hal ini.Penggunaannya sederhana:
growpart /dev/sda 3
(dan kemudianresize2fs /dev/sda3
, atau perintah lain yang sesuai untuk tipe sistem file yang digunakan).Dalam Debian dan Ubuntu itu dikemas sebagai cloud-guest-utils .
sumber
Cara yang tepat untuk melakukan ini adalah menggunakan fakta bahwa parted memiliki gagasan persentase. Begitu
sumber
Di Ubuntu 18.04, saya dapat mengubah ukuran untuk mengisi ruang yang tidak terisi dalam skrip dengan yang berikut:
Mungkin tidak perlu melakukan mount sebelum mengubah ukuran. Saya melakukannya untuk menekan permintaan dari resize2fs untuk input pengguna.
sumber