-O 64bit
Seçenek varsayılan hale gelmeden önce oluşturulan bir dosya sistemini yeniden boyutlandırmaya çalışıyorsunuz . Harici dosya sisteminizi 64 bit adrese yükseltmek mümkündür, bu da önemli ölçüde daha büyük (16 TiB yerine 1024 PiB) birim sürebilir.
Hedef cihazınızın çağrıldığını varsayarsak, /dev/mapper/target-device
yapmanız gereken budur:
Ön şartlar
- Hacminin Bu boyut gerekir RAID desteklenmesi gerekir. Düzenli disk hataları olacaktır , aksi takdirde zarar.
- Yine de, RAID bir yedekleme değil . Sen gerekir sizin değerli yanı başka yerde saklanır var.
- Öncelikle çevresindeki tüm hacimleri yeniden boyutlandırın ve doğrulayın (bölüm tabloları, şifreleme, lvm).
- Donanım RAID yapılandırmasını değiştirdikten sonra, linux yeni maksimum boyutu hemen kabul edebilir veya etmeyebilir.
$ cat /proc/partitions
Gerekirse kontrol edin ve yeniden başlatın.
Yeni kararlı bir çekirdek ve e2fsprogs kullanın
uname -r
64bit ext4 dosya sistemlerini düzgün bir şekilde işleyebilecek bir çekirdek çalıştırdığınızdan (kontrol edin ) emin olun - bir 4.4.x
çekirdek veya daha sonra kullanmak istiyorsunuz (varsayılan Ubuntu 16 ve üstü).
En az sürümde e2fsprogs edinin 1.43
Ubuntu 16.04
(2016-04-21) e2fsprogs 1.42.12
(2014-08-25) ile yayınlandı.
e2fsprogs 1.43
(2016-05-17) extfs adres boyutunu yükseltme yeteneğine sahip ilk sürümdür.
Ubuntu 18.04
(2018-04-26) e2fsprogs 1.44.x
(iyi!) İle gönderilir
Eğer biri 16.04
ve daha yeni Ubuntu sürümü yükseltme olamaz, sen gerekecektir kaynak paketi desteğini etkinleştirmek ve elle yeni bir sürümünü yükleyin:
$ resize2fs
# if this prints version 1.43 or above, continue to step 1
$ sudo apt update
$ sudo apt install git
$ sudo apt build-dep e2fsprogs
$ cd $(mktemp -d)
$ git clone -b v1.44.2 https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git e2fsprogs && cd e2fsprogs
$ ./configure
$ make
$ cd resize
$ ./resize2fs
# this should print 1.43 or higher
# if this prints any lower version, panic
# use `./resize2fs` instead of `resize2fs` for the rest of the steps
Yeniden Boyutlandırma
Adım 1: Dosya sistemini doğru şekilde düzenleyin
$ sudo umount /dev/mapper/target-device
Adım 2: Dosya sistemindeki hataları kontrol edin
$ sudo e2fsck -fn /dev/mapper/target-device
Adım 3: Dosya sisteminde 64 bit desteğini etkinleştirme
Consult man tune2fs
ve man resize2fs
- Biraz dosya sistemi bayrakları değiştirmek için olabilir ile.
$ sudo resize2fs -b /dev/mapper/target-device
Tipik bir HDD RAID'de, bu 4 dakikalık yüksek IO ve CPU yükü alır.
Adım 4: Dosya sistemini yeniden boyutlandırın
$ sudo resize2fs -p /dev/mapper/target-device
Komut satırında bir boyut iletmezseniz , resize2fs "mevcut tüm alanlara büyür" varsayıyor - bu tam olarak istediğiniz şey. -p
Bayrak ilerleme çubukları etkin - ama o sadece bazı ilk adımlar sonra gösterilecek.
Tipik bir HDD RAID'de, bu 4 dakikalık yüksek IO ve CPU yükü alır.
Tekrar doğrula
Dosya sistemini tekrar kontrol et
$ sudo e2fsck -fn /dev/mapper/target-device
Daha yeni sürümlerin e2fsck'i, önceki sürümlerin kötü işlediği zaman damgalarını veya kapsam ağaçlarını düzeltmeyi önerebilir. Bu, herhangi bir ciddi sorunun göstergesi değildir ve şimdi veya daha sonra düzeltmeyi tercih edebilirsiniz.
Hata oluşursa, do not panik ve do not hacmine yazma girişimi; Daha fazla işlem muhtemelen veriyi yok edeceğinden, dosya sistemi hakkında geniş bilgiye sahip birisine danışın!
Hata yoksa, cihazı tekrar monte edin:
$ sudo mount /dev/mapper/target-device
Başarı!
Yükseltilmiş dosya sisteminin sürekli çalışması için e2fsprogs'un Ubuntu olmayan bir sürümüne ihtiyacınız olmayacak - çekirdek artık bir süredir bunları destekliyor. Sadece yükseltme işlemini başlatmak gerekliydi.
Başvuru için, uygun olmayan seçeneklere sahip büyük bir cihaz oluşturması istendiğinde mke2fs yazdıracak benzer bir hata mesajı var:
$ mke2fs -O ^64bit /dev/huge
mke2fs: Size of device (0x123456789 blocks) is too big to be expressed in 32 bits using a blocksize of 4096.