Score:0

ละเว้นป้ายกำกับเมื่อติดตั้งพาร์ติชันสำหรับเริ่มระบบของอิมเมจระบบปฏิบัติการเป็นอุปกรณ์ย้อนกลับ

ธง ua

ฉันต้องการติดตั้ง พาร์ติชันสำหรับบูต ของ 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 ให้เมานต์ด้วยป้ายกำกับโดยอัตโนมัติหรือไม่

Christoffer Soop avatar
ua flag
Added the workaround from the answer below but not accepting it as an answer as it does not really answer the question if you can prevent the system.d event mechanism from triggering when a loopback device is added to fstab.
Score:0
ธง cn

ข้อ LABEL=บูตระบบ บอก ภูเขา เพื่อเมานต์ ใดๆ ระบบไฟล์พร้อมป้ายกำกับระดับเสียง ระบบบูต บนยอดเขานั้น ถ้าไม่ต้องการก็อย่าใช้ประโยคนั้น แทนที่ด้วย /dev/mmcblk0p1 ซึ่งบอก ภูเขา เพื่อติดตั้งอุปกรณ์นั้นทุกประการ โดยไม่คำนึงถึงฉลาก

Christoffer Soop avatar
ua flag
ขอบคุณ - แต่นี่ถือว่าฉันสคริปต์ของฉันรู้ว่าอุปกรณ์ `system-boot` คือ `/dev/mmcblk0p1` สิ่งที่ฉันหวังว่าจะไม่ได้รับหรือแยกออกจากผลลัพธ์ของการเมานต์หรือคำสั่งอื่น ๆ ...
Tilman avatar
cn flag
จากนั้นคุณต้องถอยหลังหนึ่งก้าวอะไรเป็นตัวกำหนดว่าคุณต้องการติดตั้งอุปกรณ์ใดบน `/boot/firmware` คุณไม่สามารถใช้ฉลากได้เนื่องจากคุณสร้างฉลากที่ไม่ซ้ำใคร คุณไม่ต้องการใช้ชื่ออุปกรณ์เนื่องจากคุณไม่ต้องการให้ความรู้นั้นกับสคริปต์ของคุณ แล้วไง?
Christoffer Soop avatar
ua flag
ในกรณีนี้ ฉันกำลังใช้อิมเมจที่บรรจุไว้ล่วงหน้าของ OS ที่ฉันใช้ทั้งสองอย่างเพื่อติดตั้งบนเครื่อง "โฮสต์" ที่ให้บริการระบบไฟล์ NFS กับไคลเอ็นต์ที่ไม่มีดิสก์ ขณะนี้ฉันกำลังใช้ /boot/firmware สำหรับไคลเอ็นต์ที่ไม่มีดิสก์ แต่จะเป็นการดีกว่าถ้าใช้พาร์ติชันสำหรับบูตของอิมเมจ เนื่องจากสามารถแยกเวอร์ชัน OS โฮสต์ออกจากไคลเอนต์ได้ ฉันเดาว่าตัวเลือกที่ดีที่สุดของฉันคือเปลี่ยนป้ายกำกับของไฟล์รูปภาพ นอกจากนี้อาจต้องเตรียมซอฟต์แวร์ล่วงหน้าด้วย ดังนั้นการสร้างภาพแบบกำหนดเองจึงดูเหมือนไม่ยืดเยื้อ
Christoffer Soop avatar
ua flag
... จากนั้นสิ่งที่ง่ายที่สุดที่จะทำคือเพียงแค่เมานต์พาร์ติชันสำหรับเริ่มระบบคัดลอกไปยัง fs และข้ามปัญหาป้ายกำกับทั้งหมดไปพร้อมกันโดยไม่เพิ่มพาร์ติชันสำหรับเริ่มระบบให้กับ fstab เลย แค่คิดว่าจะมีวิธียับยั้งการต่อเชื่อมอัตโนมัติตามค่าเริ่มต้นของ fstab สำหรับแต่ละบรรทัด แต่ฉันสงสัยว่าสิ่งที่ฉันเห็นเป็นพฤติกรรมที่ไม่ได้ตั้งใจเนื่องจากอุปกรณ์ย้อนกลับถูกเมานต์แล้วเมื่อเริ่มการอัตโนมัติ
sudodus avatar
jp flag
โดยทั่วไป การใช้ UUID จะปลอดภัยกว่าป้ายกำกับเพื่อกำหนดสิ่งที่จะเมาต์ เนื่องจากมีแนวโน้มที่จะไม่ซ้ำกัน จะเป็นไปได้ในกรณีของคุณหรือไม่?
Christoffer Soop avatar
ua flag
@sudodus - คุณหมายถึงการเปลี่ยนบรรทัดเริ่มต้น `LABEL=system-boot` ใน `/etc/fstab` ซึ่งตรงข้ามกับการเปลี่ยนเลเบลของพาร์ติชันที่กำหนดไว้ในอิมเมจหรือไม่ สมมติว่าใช้งานได้ (ไม่เห็นว่าทำไม) ฉันยังต้องหาวิธีเขียนสคริปต์โดยใช้ `cloud-init` หรือ Ansible และมันไม่ตอบคำถามเดิมจริงๆ ... แต่แน่นอนว่ามีความเป็นไปได้ที่ แก้ไขปัญหาพื้นฐานอย่างน้อย - ขอบคุณ!
Christoffer Soop avatar
ua flag
...และนี่คือคำตอบที่บอกว่าเป็นที่แรก
sudodus avatar
jp flag
@ChristofferSoop ใช่ ฉันหมายความว่าการเปลี่ยนเป็น `UUID=...` ทำให้น่าเชื่อถือมากขึ้น (คุณสามารถหา UUID ที่ถูกต้องได้ด้วยคำสั่ง `lsblk -f`) โปรดทราบว่ารหัสอุปกรณ์ `/dev/...` นั้น *ไม่* น่าเชื่อถือเท่ากับการใช้ uuid

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา