บูตจากฮาร์ดดิสก์ USB หรือไม่


44

มีวิธีการบูตจากฮาร์ดไดรฟ์ภายนอกที่เชื่อมต่อกับอุปกรณ์ผ่านพอร์ต USB (ซึ่งต่างจากการบูตจากการ์ด SD) หรือไม่


1
นี่เป็นเพียงลิงก์ไปยังบทช่วยสอนจริงดังนั้นฉันจึงปล่อยให้มันเป็นความคิดเห็น: blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb
Krastanov

คำตอบ:


8

ตอนนี้เกือบห้าปีต่อมาหลังจากที่ผู้เขียนเดิมถามคำถามนี้,
ราสเบอร์รี่ Pi อย่างเป็นทางการสนับสนุนการบูตจากอุปกรณ์เก็บข้อมูล

อย่างไรก็ตามสิ่งนี้ได้รับการสนับสนุนสำหรับRaspberry Pi 3เท่านั้น นี่คือเหตุผล:

จะสามารถบู๊ต Pi 1 หรือ Pi 2 โดยใช้ MSD ได้หรือไม่?

แต่น่าเสียดายที่ไม่ได้. รหัสการบู๊ตถูกเก็บไว้ในอุปกรณ์ BCM2837 เท่านั้นดังนั้น Pi 1, Pi 2 และ Pi Zero จะต้องใช้การ์ด SD ทั้งหมด


28

ไม่สามารถบูต RPi จาก USB โดยตรงในความหมายที่แท้จริงของคำ อย่างไรก็ตามไม่มีอะไรที่จะห้ามไม่ให้ใครทำ mini-distro ซึ่งจะมี/ bootและตัวจัดการการบูตบางชนิด สิ่งนี้สามารถใช้การบูตจาก USB หรือแม้แต่สภาพแวดล้อมสไตล์ PXE สิ่งนี้สามารถพอดีกับการ์ด SD ขนาดเล็ก - ตอนนี้มีการ์ด 64MB สำหรับเพนนี ฉันคาดหวังว่าจะมีใครบางคนแจกจ่ายการตลาดนี้ - แต่ไม่พบวันที่

ในขณะเดียวกันคุณสามารถย้ายรูทพาร์ติชันของคุณเองลงบนฮาร์ดดิสก์เพื่อให้ได้เวลาบูตเร็วขึ้น แต่ก็มีส่วนเกี่ยวข้องบ้างเพราะคุณจะต้องใช้เคอร์เนลที่รองรับที่เก็บข้อมูล USB คำแนะนำที่ดีเกี่ยวกับวิธีการทำสิ่งนี้สามารถดูได้ที่: http://mitchtech.net/raspberry-pi-root-fs-on-usb-drive/


3
นี่เป็นความคิดที่ดี
Jivings

อัปเดต: ขณะนี้มีการสนับสนุนการทดลองสำหรับการบูตโดยตรงกับ USB ไม่จำเป็นต้องใช้ sdcard หลังจากการตั้งค่าเริ่มต้น
Hydraxan14

21

จากRaspberry Pi คำถามที่พบบ่อย :

คุณต้องบูตจาก SD แต่ USB HD สามารถ“ เข้าควบคุม” ได้หลังจากการบู๊ตครั้งแรก คุณไม่สามารถบู๊ตได้หากไม่มีการ์ด SD


1
หมายความว่าหลังจากที่ hardisk เข้ามาแล้วไม่จำเป็นต้องมีหน่วยความจำในรถยนต์อีกต่อไป?
Suhaib

5

แน่นอนถ้าคุณสามารถอยู่กับพาร์ทิชัน SD MS-DOS (/ boot) ที่เคอร์เนลอยู่คุณสามารถมี / รูทและทุกอย่างอื่นบนอุปกรณ์ภายนอก การ์ดหน่วยความจำ USB หรือฮาร์ดไดรฟ์แบบฟิสิคัลถือว่าใช้ได้เหมือนไดรฟ์รอง สิ่งที่ดีคือถ้าคุณไม่ 'ผิด' ไปยังตำแหน่งที่ไม่ถูกต้องนี่เป็นขั้นตอนที่ไม่ทำลาย: หนึ่งการแก้ไขและคุณกลับไปที่เดิม

ในการตั้งค่าการกำหนดค่านี้ค่อนข้างง่าย คุณกำหนดค่าการติดตั้งตามปกติและย้าย / คัดลอกพาร์ติชัน EXT4 ไปยังไดรฟ์ภายนอก

ใช้fdiskพาร์ทิชันรองที่คุณเลือกสร้างพาร์ทิชันที่มีขนาดเท่ากันหรือใหญ่กว่า mmcblk0p2 ปัจจุบันของคุณ (หรือ mmcblk0p5) บันทึกการกำหนดค่าใหม่

ค้นหาชื่อพาร์ติชันในตัวอย่างนี้ '/ dev / sda5' อย่างไรก็ตามพาร์ติชันนี้จะขึ้นอยู่กับการกำหนดค่าของคุณ

คัดลอกพาร์ติชั่นที่กำลังรันอยู่ (หมายเหตุ: ไม่แนะนำให้คัดลอกพาร์ติชั่นที่กำลังรันอยู่, บางไฟล์อยู่ใน 'unstable' หรือ open state, แต่ทำงานได้ดี):

dd if=/dev/mmcblk0p2 of=/dev/sda5 bs=10M

ตอนนี้แก้ไขบรรทัดต่อไปนี้ในไฟล์ /boot/cmdline.txt และแก้ไขตำแหน่ง 'root':

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

ถึงบรรทัดใหม่นี้

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/sda5 rootfstype=ext4 elevator=deadline rootwait

โปรดทราบว่าพาร์ติชั่นสำหรับบู๊ตคือ MS-DOS ดังนั้นหากคุณต้องแก้ไขคุณสามารถเมานต์ SD ที่อื่นและแก้ไข หากการบู๊ตล้มเหลวตัวโหลดจะแสดงบนหน้าจอ (HDMI) ของคุณที่จุดติดตั้งที่มี

การตั้งค่านี้จะเกิดขึ้นตามลำดับการเมานต์ หมายเลขพาร์ติชันอาจเปลี่ยนแปลงหากอุปกรณ์ได้รับการเชื่อมต่อกับช่องอื่น คุณสามารถทำให้ตำแหน่งนี้เป็นอิสระดังต่อไปนี้

ค้นหาอุปกรณ์ 'UUID'

blkid /dev/sda5
/dev/sda5: UUID="13d368bf-6dbf-4751-8ba1-88bed06bef77" TYPE="ext4"

หรือสร้างใหม่

tune2fs -U random /dev/sda5

และรับชื่อที่ได้รับมอบหมายใหม่

blkid /dev/sda5
/dev/sda5: UUID="25b6aa72-ddc4-485e-8044-900ac24d662b" TYPE="ext4"

จากนั้นแก้ไข cmdline.txt ที่แก้ไขก่อนหน้านี้เปลี่ยนตำแหน่งรูตเป็น:

root=UUID=25b6aa72-ddc4-485e-8044-900ac24d662b

หลังจากบูตการกำหนดค่าใหม่ให้แก้ไข fstab ลบหมายเหตุ / mmcblk0p2 เก่า: นี่คือไฟล์จะอยู่ในอุปกรณ์ 'ใหม่' / รูท
แทนที่ / dev / mmcblk0p% (% เป็นพาร์ติชัน linux)

nano /etc/fstab
UUID=25b6aa72-ddc4-485e-8044-900ac24d662b ...

2

ใน raspbian เพียงแค่เปลี่ยนrootธงใน/boot/cmdline.txtการroot=/dev/sdaXที่Xเป็นจำนวนของพาร์ทิชันที่เหมาะสม

สำหรับรายละเอียดเกี่ยวกับวิธีรับ raspbian บน usb ของคุณ ฯลฯ คุณสามารถตรวจสอบได้ที่นี่http://blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb/


1

ฉันใช้ windows แทนการสร้าง 100%

ฉันใช้ 'ตัวจัดการพาร์ติชัน MiniTool' (ฟรี) และเพิ่งโอนการบู๊ตไปยังการ์ด SD ขนาดเล็กที่สุดซึ่งสามารถขยายได้โดยอัตโนมัติด้วยตัวจัดการพาร์ติชัน เปิดและเปลี่ยนเป็นcmdline.txtroot=/dev/sda5

ผู้จัดการพาร์ทิชันเดียวกันให้ฉันคัดลอก ext4 ไปยัง 1TB แบบพกพาของฉัน (FYI ลบพาร์ติชันทั้งหมดออกจากไดรฟ์ก่อนดังนั้นคุณจึงมีพื้นที่ที่ไม่แบ่งพาร์ติชันก่อนที่จะถ่ายโอน) Vala - ถูกบูท ฉันสังเกตเห็น HDD มาตรฐานเวลาในการเข้าถึงค่อนข้างสั้นแม้ว่าพวกเขาจะมีความเร็ว R / W ที่รวดเร็วมากเมื่อเทียบกับการ์ด SD ส่วนใหญ่

ปัญหาเดียวที่ฉันมีอยู่ตอนนี้กำลังขยายพาร์ติชัน ext4 (root) จาก 32GB เดิม (จากการ์ด SD ดั้งเดิมของฉัน) ดังนั้นตอนนี้ฉันมี 32GB ของ 1TB เท่านั้น อืมมม ฉันแค่สามเณรกับเทอร์มินัลและคำสั่งของมันดังนั้นการแบ่งพาร์ติชันใน linux นั้นค่อนข้างสับสนเล็กน้อย แต่คู่มือนี้ช่วยได้ดีมาก


ขออภัยคู่มืออะไรบ้าง
Bex

ขออภัยฟอรัมนี้
เดฟ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.