ใช่สำหรับความรู้ของฉันมันเป็นไปได้อย่างสมบูรณ์!
สิ่งที่คุณต้องการทำคือคัดลอกพาร์ติชั่นรูทไปยัง USB stick จากนั้นเปลี่ยน/etc/fstab
และ/boot/cmdline.txt
เพื่อให้บูตจากไดรฟ์ภายนอกแทนพาร์ติชั่นที่สองในการ์ด SD
หากพบบทเรียน แต่น่าเสียดายที่มันไม่ใช่ภาษาอังกฤษดังนั้นฉันจะพยายามอธิบายขั้นตอนด้วยคำพูดของตัวเอง
รีบูต Pi ด้วยไดรฟ์ภายนอกตัวเดียวเป็น USB stick (ด้วยวิธีนี้เราจะหลีกเลี่ยงการมีหมายเลขไดรฟ์ที่แตกต่างกันในการบู๊ตแต่ละครั้งเนื่องจาก ID ไดรฟ์ที่ไม่ซ้ำกันนั้นเป็นไปไม่ได้
sudo blkid
รับจำนวนไดรฟ์ผ่าน /dev/sda1
ควรจะมีเพียงคนเดียวที่มีลักษณะเช่นนี้
โดยใช้คำสั่งmount
เราสามารถดูว่ามันได้รับการติดตั้งโดยอัตโนมัติ หากไม่มีอยู่ในรายการให้ดำเนินการในขั้นตอนถัดไป หากเป็นเช่นนั้นให้เรียกใช้sudo umount /dev/sda1
(แก้ไขให้ถูกต้องสำหรับหมายเลขที่แตกต่างกันหากไม่เหมือนกัน) เพื่อเลิกเมานท์ USB
ต่อไปเราต้องการรูปแบบแท่ง USB ext4
ที่จะมีความถูกต้องของระบบไฟล์สำหรับพาร์ทิชันรากเดซึ่งเป็นอย่างยิ่ง sudo mkfs.ext4 /dev/sda1
คุณสามารถทำได้โดยใช้คำสั่งนี้:
หลังจากนี้เราต้อง (ติดตั้ง) ติด USB Stick บนตำแหน่งชั่วคราวเพื่อคัดลอกพาร์ติชั่นรูทจากการ์ด SD เราทำสิ่งนี้โดยการวิ่ง: sudo mount /dev/sda1 /mnt
. (หากคำสั่งบ่นเกี่ยวกับ/mnt
ไม่มีอยู่ให้สร้างโฟลเดอร์ที่มีชื่อนั้นโดยเรียกใช้: sudo mkdir /mnt
แล้วลองอีกครั้ง
ตอนนี้มันถึงเวลาที่จะคัดลอกข้อมูลทั้งหมดจากพาร์ทิชันรากโดยสลับแรกที่จะไดเรกทอรีบนด้วย: cd /
แล้วทำงานนี้ tar sudo tar cf - * --exclude /mnt/* | ( cd /mnt; sudo tar xfp -)
คำสั่ง: มันอาจไม่ใช่โซลูชันที่กะทัดรัดที่สุด แต่ใช้ได้สำหรับฉัน โปรดทราบว่าอาจใช้เวลาสักครู่ขึ้นอยู่กับความเร็วของการ์ด SD และไดรฟ์ USB
ต่อไปเราต้องเปลี่ยนที่มีไดรฟ์ที่จะติดตั้งอยู่บนการบูตเครื่องด้วยการวิ่ง/etc/fstab
sudo nano /mnt/etc/fstab
( ขอให้สังเกตว่านี้อยู่บน USB ติดตั้งแต่เราได้เพิ่ม/mnt
. ) คุณต้องเปลี่ยนสายที่สอดคล้องกันจะทำให้พวกเขามีลักษณะเช่นนี้
/dev/mmcblk0p1 /boot vfat defaults 0 0
/dev/sda1 / ext4 defaults,noatime 0 0
ในที่สุดเราจำเป็นต้องบอกพาร์ติชันสำหรับเริ่มระบบบนการ์ด SD เพื่อเริ่มระบบจากไดรฟ์ USB แทน sudo cp /boot/cmdline.txt /boot/cmdline.txt.save
แต่ก่อนมันอาจจะเป็นความคิดที่ดีที่จะทำให้การสำรองข้อมูลของไฟล์ที่เรากำลังจะเปลี่ยนตอนนี้ก่อนที่เรามุ่งมั่นในการทำสวิทช์โดยการทำงาน:
วิ่งsudo nano /boot/cmdline.txt
เพื่อเข้าสู่nano
การเปลี่ยนพารามิเตอร์การบู๊ตบนพาร์ติชั่นแรกของการ์ด SD โดยทั่วไปเราจำเป็นต้องเปลี่ยนรายการสำหรับพาร์ติชันรูทเป็นไดรฟ์ USB บทช่วยสอนนำเสนอสิ่งนี้เพื่อป้อน (1 บรรทัด):
dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1 zram.num_devices=2
คุณสามารถอ่านในสิ่งที่พารามิเตอร์เหล่านั้นหมายถึงที่นี่
ตอนนี้บันทึกและออกnano
และในการรีบูตครั้งถัดไป Raspberry Pi ของคุณควรบูตจากแท่ง USB แต่แน่นอนว่าต้องใช้การ์ด SD ตามที่คุณได้กล่าวไปแล้ว
ตราบใดที่ไดรฟ์ USB เป็นไดรฟ์เพียงตัวเดียว (นอกเหนือจากการ์ด SD) ในการบูทเครื่องก็ควรใช้งานได้ คุณต้องมีมันค่อนข้างแบบไดนามิกและผมไม่เห็นทางอื่น ๆ /dev/diskX
หมายถึงไดรฟ์อื่นกว่าการใช้
แก้ไข: ฉันลืมที่จะพูดถึงว่าคุณต้องทำซ้ำไดรฟ์ USB หลังจากเสร็จสิ้นหรือทำตามขั้นตอนเดียวกันกับการติดตั้งอื่น ๆ ไปยังไดรฟ์อื่น หากเวอร์ชั่น Raspian รวมถึงแพ็คเกจที่ติดตั้งเหมือนกันทั้งหมดฉันไม่เห็นเหตุผลว่าทำไมสิ่งนี้ถึงใช้งานไม่ได้
/boot
พาร์ทิชันสวยขั้นพื้นฐานและสายที่ผมกล่าวใน 9 เป็นพื้นทั้งหมดมันไม่ มันแค่ต้องส่งมันออกไปยังพาร์ติชั่นที่ถูกต้องด้วยระบบไฟล์ที่ถูกต้องและมันควรจะทำงานได้
ฉันหวังว่านี่จะเป็นประโยชน์กับคุณ
สำหรับคนที่พูดภาษาเยอรมันผมจะออกจากการเชื่อมโยงแหล่งที่มาที่นี่: แหล่งที่มา