ฉันต้องการติดตั้ง พาร์ติชันสำหรับบูต ของ ubuntu-21.10-preinstalled-server-arm64+raspi.img.xz
ดาวน์โหลดจากเว็บไซต์ Raspberry PI
คลายไฟล์อิมเมจและติดตั้งพาร์ติชันสำหรับเริ่มระบบด้วยคำสั่งเช่น
เมานต์ -o ลูป,offset=1048576,sizelimit=268435456 ubuntu-21.10-preinstalled-server-arm64+raspi.img /var/nfs/ubuntu-21.10-boot
... ทำงานได้ดี คุณสามารถดูภาพที่ติดตั้งพร้อมกับ /dev/mmcblk0p1
อุปกรณ์:
เมานต์ | บูต grep
/dev/mmcblk0p1 บน /boot/firmware ประเภท vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/var/nfs/ubuntu-21.10-preinstalled-server-arm64+raspi.img บน /var/nfs/ubuntu-21.10-boot ประเภท vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset= ascii,ชื่อย่อ=ผสม,ข้อผิดพลาด=remount-ro)
อย่างไรก็ตาม เมื่อฉันเพิ่มเมานต์เดียวกันเข้าไป /etc/fstab
เพื่อเมานต์ที่มีอยู่แล้วสำหรับ /บูต/เฟิร์มแวร์
:
LABEL=บูตระบบ /บูต/เฟิร์มแวร์ ค่าเริ่มต้น vfat 0 1
/var/nfs/ubuntu-21.10-preinstalled-server-arm64+raspi.img /var/nfs/ubuntu-21.10-boot ext4 loop,offset=1048576,sizelimit=268435456 0 0
... และรีบูตระบบ (หรือเรียกใช้ เมานต์ -a
) พาร์ติชันสำหรับเริ่มระบบของอิมเมจถูกเมาต์ทั้งสองที่ /var/nfs/ubuntu-21.10-boot
เป็นไปตามคาด แต่ยังอยู่ที่ /บูต/เฟิร์มแวร์
และแทนที่เฟิร์มแวร์จริงที่ /dev/mmcblk0p1
:
เมานต์ | บูต grep
/var/nfs/ubuntu-21.10-preinstalled-server-arm64+raspi.img บน /var/nfs/ubuntu-21.10-boot ประเภท vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset= ascii,ชื่อย่อ=ผสม,ข้อผิดพลาด=remount-ro)
/var/nfs/ubuntu-21.10-preinstalled-server-arm64+raspi.img บน /boot/firmware ประเภท vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed, ข้อผิดพลาด = remount-ro)
เห็นได้ชัดว่าเป็นเพราะพาร์ติชันสำหรับเริ่มระบบของอิมเมจมีป้ายกำกับ ระบบบูต
ซึ่งชนกับ /dev/mmcblk0p1
ฉลากในลักษณะเดียวกัน
(หน้าคู่มือการเมาระบุไว้ว่า แทง
จะถูกละเว้นเมื่อมีการระบุทั้งอุปกรณ์และจุดเชื่อมต่อ ซึ่งจะอธิบายว่าทำไมการติดตั้งด้วยตนเองจึงทำงานได้ตามที่คาดไว้)
ฉันสามารถนึกถึงวิธีแก้ปัญหาต่อไปนี้เพื่อหลีกเลี่ยงการเมานต์เฟิร์มแวร์ที่จะเขียนทับ:
- หลีกเลี่ยงการใช้ fstab และเมานต์ด้วยตนเองในสคริปต์ rc
- ติดป้ายกำกับพาร์ติชันสำหรับเริ่มระบบของไฟล์อิมเมจใหม่
- แทนที่
LABEL=บูตระบบ
ด้วยอุปกรณ์จริงที่เก็บเฟิร์มแวร์ (ตามคำแนะนำในคำตอบของ @ Tilman ด้านล่าง)
... แต่
มีวิธีป้องกันรายการ fstab ให้เมานต์ด้วยป้ายกำกับโดยอัตโนมัติหรือไม่