คุณกำลังพยายามปรับขนาดระบบไฟล์ที่สร้างขึ้นก่อนที่-O 64bit
ตัวเลือกจะเป็นค่าเริ่มต้น เป็นไปได้ที่จะอัปเกรดระบบไฟล์ ext ของคุณเป็นที่อยู่ 64 บิตทำให้สามารถขยายได้มากกว่า 1024 PiB แทนที่จะเป็น 16 TiB
สมมติว่าอุปกรณ์เป้าหมายของคุณถูกเรียกใช้/dev/mapper/target-device
นี่คือสิ่งที่คุณต้องทำ:
ข้อกำหนดเบื้องต้น
- โวลุ่มขนาดนี้ต้องได้รับการสำรองข้อมูลโดย RAID ข้อผิดพลาดดิสก์ปกติจะทำให้เกิดอันตรายอย่างอื่น
- ยังคงRAID ไม่ได้สำรองข้อมูล คุณต้องเก็บของมีค่าไว้ที่อื่นด้วย
- ปรับขนาดและตรวจสอบโวลุ่มโดยรอบทั้งหมดก่อน (ตารางพาร์ทิชัน, การเข้ารหัส, lvm)
- หลังจากเปลี่ยนการกำหนดค่าฮาร์ดแวร์ RAID แล้ว linux อาจหรือไม่อาจรับทราบขนาดสูงสุดใหม่ทันที ตรวจสอบ
$ cat /proc/partitions
และรีบูตหากจำเป็น
ใช้เคอร์เนลที่เสถียรล่าสุดและ e2fsprogs
- ตรวจสอบให้แน่ใจ (ทำเครื่องหมาย
uname -r
) ว่าคุณใช้เคอร์เนลที่สามารถจัดการกับระบบไฟล์ 64 บิต ext4 ได้อย่างถูกต้อง - คุณต้องการใช้4.4.x
เคอร์เนลหรือใหม่กว่า (เริ่มต้น Ubuntu 16 ขึ้นไป)
รับ e2fsprogs อย่างน้อยเวอร์ชั่น 1.43
Ubuntu 16.04
(2016-04-21) เปิดตัวพร้อมe2fsprogs 1.42.12
(2014-08-25)
e2fsprogs 1.43
(2016-05-17) เป็นรุ่นที่ 1 ที่สามารถอัพเกรดขนาดที่อยู่ extfs
Ubuntu 18.04
(2018-04-26) มาพร้อมกับe2fsprogs 1.44.x
(ดี!)
หากคุณเปิดใช้งานอยู่16.04
และไม่สามารถอัปเกรดเป็นรุ่นใหม่ของ Ubuntu คุณจะต้องเปิดใช้งานการสนับสนุนแพ็คเกจต้นทางและติดตั้งรุ่นใหม่กว่าด้วยตนเอง:
$ 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
ปรับขนาด
ขั้นตอนที่ 1: ขยายระบบไฟล์อย่างถูกต้อง
$ sudo umount /dev/mapper/target-device
ขั้นตอนที่ 2: ตรวจสอบข้อผิดพลาด
$ sudo e2fsck -fn /dev/mapper/target-device
ขั้นตอนที่ 3: เปิดใช้งานการสนับสนุน 64 บิตในระบบไฟล์
ให้คำปรึกษาman tune2fs
และman resize2fs
- คุณอาจต้องเปลี่ยนสถานะระบบไฟล์บางส่วน
$ sudo resize2fs -b /dev/mapper/target-device
บน HDD RAID ทั่วไปใช้เวลาโหลด IO & CPU สูง 4 นาที
ขั้นตอนที่ 4: ปรับขนาดระบบไฟล์
$ sudo resize2fs -p /dev/mapper/target-device
หากคุณไม่ผ่านขนาดบนบรรทัดคำสั่งresize2fsจะถือว่า "ขยายไปยังพื้นที่ทั้งหมดที่มี" - นี่คือสิ่งที่คุณต้องการ -p
ธงเปิดใช้งานแถบความคืบหน้า - แต่ผู้ที่จะแสดงเฉพาะหลังจากขั้นตอนเริ่มต้นบางอย่าง
บน HDD RAID ทั่วไปใช้เวลาโหลด IO & CPU สูง 4 นาที
ยืนยันอีกครั้ง
ตรวจสอบระบบไฟล์อีกครั้ง
$ sudo e2fsck -fn /dev/mapper/target-device
e2fsck ของเวอร์ชันที่ใหม่กว่าอาจแนะนำให้แก้ไขการประทับเวลาหรือขยายทรีที่เวอร์ชันก่อนหน้านี้จัดการไม่ดี นี่ไม่ใช่ข้อบ่งชี้ของปัญหาร้ายแรงใด ๆ และคุณสามารถเลือกที่จะแก้ไขได้ทันทีหรือหลังจากนั้น
หากเกิดข้อผิดพลาดไม่ได้ตื่นตระหนกและไม่ได้พยายามที่จะเขียนไปยังไดรฟ์; ปรึกษาผู้ที่มีความรู้กว้างขวางเกี่ยวกับระบบไฟล์เนื่องจากการดำเนินการต่อไปอาจทำลายข้อมูลได้!
หากไม่มีข้อผิดพลาดเกิดขึ้นให้ติดตั้งอุปกรณ์ใหม่:
$ sudo mount /dev/mapper/target-device
ที่ประสบความสำเร็จ!
คุณไม่จำเป็นต้องใช้ e2fsprogs รุ่นที่ไม่ใช่ Ubuntu สำหรับการดำเนินการต่อเนื่องของระบบไฟล์ที่อัพเกรด - เคอร์เนลรองรับสิ่งเหล่านี้มาระยะหนึ่งแล้ว มันเป็นสิ่งจำเป็นเท่านั้นที่จะเริ่มต้นการอัพเกรด
สำหรับการอ้างอิงมีข้อความแสดงข้อผิดพลาดที่คล้ายกัน mke2fs จะพิมพ์ถ้ามันถูกขอให้สร้างอุปกรณ์ขนาดใหญ่ที่มีตัวเลือกที่ไม่เหมาะสม:
$ 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.