มีกลไกสองส่วนที่รับผิดชอบเรื่องนี้ใน Raspbian น่าจะเป็นความคิดที่ดีที่สุดคือการดูแลทั้งสองส่วนหากเปิดใช้งาน
ที่แรกก็คือว่าต้นฉบับ/boot/cmdline.txt
รวมถึงสิ่งนี้:
init=/usr/lib/raspi-config/init_resize.sh
หมายถึงสคริปต์มีเส้นทางที่บนพาร์ติชันรากซึ่งจะถูกนำมาใช้เป็นinitกระบวนการที่บูต โดยไม่ต้องบิตที่มันจะเริ่มต้นให้เป็นค่าที่สร้างขึ้นในเคอร์เนล/sbin/init
ซึ่งใน Raspbian เป็น symbolic link /lib/systemd/systemd
ไป
โดยการลบส่วนนั้นของcmdline.txt
ระบบควรบูตตามปกติ
สิ่งที่สคริปต์ทำคือปรับขนาดพาร์ติชันบนการ์ด SD นี่เป็นกระบวนการที่แตกต่างจากการปรับขนาดระบบไฟล์ในพาร์ติชัน1ซึ่งเป็นสิ่งที่เกิดขึ้นต่อไป
วิธีที่เกิดขึ้นคือระบบรีบูตทันทีตามปกติ (นั่นคือผ่าน systemd) และinit.d
สคริปต์ถูกตั้งค่าให้เริ่มทำงานก่อนซึ่งควรถูกลบออกจากพาร์ติชันที่สอง:
/etc/init.d/resizefs_once
และลิงก์สัญลักษณ์ซึ่งควรถูกลบออก:
/etc/rc3.d/S01resizefs_once
คุณสามารถเก็บสำเนาไว้เพื่อใช้ในภายหลังได้หากต้องการ แต่raspi-config
สามารถสร้างใหม่ได้อีกครั้งสำหรับคุณ (ไฟล์นั้นฝังอยู่ในraspi-config
เชลล์สคริปต์) ถ้ามันทำงานได้จริงมันจะลบตัวเองดังนั้นมันจะไม่เกิดขึ้นอีก
สิ่งที่ยังทำคือปรับขนาดระบบไฟล์ในพาร์ติชันที่ปรับขนาดใหม่
ไม่ควรทำอันตรายหากเพียงส่วนใดส่วนหนึ่งเกิดขึ้น ในกรณีแรกคุณจะพบกับระบบไฟล์ที่ไม่ได้เติมพาร์ติชั่นที่ขยายไว้ในครั้งที่สองจะไม่มีอะไรเกิดขึ้นเพราะระบบไฟล์เติมพาร์ติชั่นแล้ว
หากคุณใช้raspi-config
เพื่อขยายระบบไฟล์ในภายหลังพาร์ติชันจะปรับขนาดทันทีจากนั้นตั้งค่าสคริปต์เริ่มต้น (ตามที่กล่าวไว้แล้ว)
การแก้ไขcmdline.txt
ในพาร์ติชันแรกนั้นง่ายในคอมพิวเตอร์ทุกเครื่องเนื่องจากเป็นพาร์ติชัน VFAT การลบinit.d
ไฟล์ต้องการระบบที่สามารถเข้าถึงและแก้ไขระบบไฟล์ ext4
งานทั้งสองสามารถทำได้กับไฟล์ภาพแทนก่อนที่จะเบิร์นการ์ด ในการติดตั้งและปรับเปลี่ยนภาพ Raspbian บนระบบ GNU / Linux, ดูที่นี่ มีความเป็นขนาน Q & A สำหรับ Windows
สิ่งนี้สามารถย้อนกลับได้เช่นกัน แต่คุณจะต้องนำทั้งสองส่วนกลับมาใช้ใหม่ตามที่อธิบายไว้เนื่องจากส่วนแรกไม่รวมระยะที่สองโดยอัตโนมัติ
- แม้ว่าข้อความแสดงข้อผิดพลาดจากสคริปต์นั้นจะสร้างความสับสนให้กับเงื่อนไขเหล่านั้นโดยอ้างว่ามันล้มเหลวในการปรับขนาดระบบไฟล์รูทเมื่อสิ่งที่มันล้มเหลวที่จะทำจริง ๆ ก็คือปรับขนาดพาร์ติชันด้วยระบบไฟล์รูท การทำอย่างใดอย่างหนึ่งไม่สำเร็จโดยอัตโนมัติ