Score:-1

เพิ่มการ์ด SD ทั้งหมดลงในพาร์ติชันเดียวบน HDD

ธง cn

คำถามนี้เกี่ยวข้องกับ Raspberry Pi แต่อันที่จริงแล้ว นี่เป็นคำถามทั่วไป

ดังนั้น ฉันมีการ์ด SD ที่มีระบบ RPI ทำงานอยู่ ประกอบด้วยสองพาร์ติชัน:

ดิสก์ /dev/mmcblk0: 59.5 GiB, 63864569856 ไบต์, 124735488 ภาคส่วน
หน่วย: ภาค 1 * 512 = 512 ไบต์
ขนาดเซกเตอร์ (โลจิคัล/กายภาพ): 512 ไบต์ / 512 ไบต์
ขนาด I/O (ต่ำสุด/เหมาะสม): 512 ไบต์ / 512 ไบต์
ประเภทป้ายชื่อดิสก์: dos
ตัวระบุดิสก์: 0xf4481065

ประเภทรหัสขนาดเซกเตอร์เริ่มต้นการบูตอุปกรณ์
/dev/mmcblk0p1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/mmcblk0p2 532480 124735487 124203008 59.2G 83 ลินุกซ์

นอกจากนี้ ฉันมีการเชื่อมต่อ HDD ภายนอกซึ่งตอนนี้ทำงานเป็นที่เก็บข้อมูลซึ่งประกอบด้วยสี่พาร์ติชัน:

ดิสก์ /dev/sda: 1.8 TiB, 2000398934016 ไบต์, 3907029168 ภาคส่วน
รุ่นดิสก์: EZRZ-00Z5HB0    
หน่วย: ภาค 1 * 512 = 512 ไบต์
ขนาดเซกเตอร์ (โลจิคัล/กายภาพ): 512 ไบต์ / 4096 ไบต์
ขนาด I/O (ต่ำสุด/เหมาะสม): 4096 ไบต์ / 4096 ไบต์
ประเภทป้ายชื่อดิสก์: gpt
ตัวระบุดิสก์: 9E92BCDF-4CF7-4ECE-ABCD-5B6794FE747E

ประเภทขนาดเซกเตอร์สิ้นสุดการเริ่มต้นของอุปกรณ์
/dev/sda1 2048 125831167 125829120 ระบบไฟล์ Linux 60G
/dev/sda2 125831168 754976767 629145600 ระบบไฟล์ Linux 300G
/dev/sda3 754976768 2331002879 1576026112 ระบบไฟล์ Linux 751.5G
/dev/sda4 2331002880 3907028991 1576026112 ระบบไฟล์ Linux 751.5G

สิ่งที่ฉันต้องการทำคือย้ายระบบ RPI จากการ์ด SD ไปยังพาร์ติชันแรกของ HDD ฉันสามารถใช้คำสั่งต่อไปนี้เพื่อโคลนการ์ด SD ทั้งหมด (สองพาร์ติชัน) ไปยังพาร์ติชันแรกของ HDD ได้หรือไม่

dd if=/dev/mmcblk0 of=/dev/sda1 ...

เนื่องจากพาร์ติชันปลายทางมีขนาดใหญ่กว่าเล็กน้อย (ภาค 124735488 เทียบกับ 125829120) ฉันคาดหวังว่า พาร์ติชั่น HDD แรกจะถูกแบ่งด้วยสอง (บูตและรูท) และ คนอื่น ๆ ทั้งหมด sda2, sda3 เป็นต้น จะยังคงไม่บุบสลาย. หลังจากการดำเนินการนี้ ฉันจะสามารถบูตจาก HDD แทนการ์ด SD ได้ (แน่นอนว่าหลังจากตรวจสอบ UUID ทั้งหมดซึ่งอาจเปลี่ยนแปลงได้หลังการย้ายข้อมูล)

AFAIK น่าจะโอเค แต่ฉันไม่สามารถทดสอบกระบวนการนี้ได้ในขณะนี้ ดังนั้นต้องการตรวจสอบทุกอย่างอีกครั้งและแน่ใจ 100% ว่าจะไม่ยุ่งเหยิงทั้งระบบ

ปรับปรุง ใช่ ฉันเข้าใจว่าเนื้อหา sda1 จะถูกทำลายอย่างถาวร

Score:2
ธง za

พาร์ติชันไม่คาดว่าจะมีพาร์ติชันเอง นี่คือระบบ "ชั้นเดียว" ไม่ใช่ "ต้นไม้" พาร์ติชันจะไม่ถูก "แบ่งด้วยสอง" อย่างน่าอัศจรรย์แม้ว่าจะมีตารางพาร์ติชันที่ถูกต้องก็ตาม เคอร์เนลจะไม่ตั้งค่าอุปกรณ์บล็อกพิเศษที่สอดคล้องกับพาร์ติชันย่อยเหล่านั้นโดยอัตโนมัติ ดังนั้น ในขณะที่คุณสามารถดัมพ์เซ็กเตอร์อุปกรณ์ที่แบ่งพาร์ติชันทั้งหมดได้อย่างแน่นอน คุณจะต้องดำเนินการด้วยตนเองเพิ่มเติมเพื่อเข้าถึงข้อมูลใน "พาร์ติชันย่อย" เหล่านั้น (ฉันหมายความว่า คุณจะต้องตีความตารางพาร์ติชันด้วยตนเองและวนซ้ำ การตั้งค่าอุปกรณ์)

ต้องบอกว่าคำสั่งที่คุณแสดงอาจทำลายข้อมูลเท่านั้น /dev/sda1. มันจะไม่แตะ sda2, sda3 และอื่น ๆ คุณจะไม่ยุ่งอะไรกับพวกเขา แม้ว่าคุณจะ sda1 ไม่ใหญ่พอที่จะรองรับขนาดเต็มของการ์ด SD ในกรณีนั้น dd จะหยุดโดยมีข้อผิดพลาดเมื่อพบจุดสิ้นสุดของ sda1. แต่การแบ่งพาร์ติชันของคุณดูเหมือนจะไม่ได้รับผลกระทบจากสิ่งนี้

ihorc avatar
cn flag
แต่คำสั่ง `dd` คัดลอกบล็อกดิบ ดังนั้นจึงทำงาน "ชั้นเดียว" ด้านล่างพาร์ติชัน ดังนั้นจึงไม่รู้ด้วยซ้ำว่าพาร์ติชันใดที่คัดลอก ตามความเข้าใจของฉัน มันจะนำบล็อกการ์ด SD ทั้งหมดไปวางไว้ในส่วนที่มีเครื่องหมาย sda1 ของ HDD นอกจากนี้ เนื่องจากใช้งานได้กับบล็อกดิบ จึงไม่จำเป็นต้องแบ่งพาร์ติชันก่อน `dd` ยังไงก็จะเขียนใหม่ วัตถุประสงค์ของการระบุพาร์ติชันปลายทางเป็นเพียงเพื่อระบุช่วงที่สามารถเขียนได้ สิ่งนี้เหมือนกับไฟล์ `dd` ถึง img จากนั้นเขียน img ลงในพาร์ติชัน ฉันผิดเหรอ?
Nikita Kipriyanov avatar
za flag
คุณพูดถูก ฉันพูดในสิ่งเดียวกันทุกประการ "คุณสามารถดัมพ์เซกเตอร์อุปกรณ์ที่แบ่งพาร์ติชันทั้งหมดเป็นอะไรก็ได้"ดังนั้นฉันจึงอธิบายว่าคุณไม่สามารถพูดว่าบูตจาก HDD นี้ เพราะในขณะที่ข้อมูลจะอยู่ที่นั่น ระบบ **จะไม่สร้างอุปกรณ์พิเศษ** พร้อมระบบไฟล์ดิบเพื่อเมานต์ จะไม่ตีความตารางพาร์ติชันภายในพาร์ติชัน
ihorc avatar
cn flag
ดังนั้น วิธีแก้ปัญหาเดียวที่มีในกรณีนี้คือแยก sda1 ด้วยตนเอง (เช่น sda1 และ sda5) จากนั้นแยก `dd` สองพาร์ติชันตามลำดับ `mmcblk0p1->sda1` และ `mmcblk0p2->sda5` หรือไม่
Nikita Kipriyanov avatar
za flag
จริง ๆ แล้วฉันไม่เคยพยายามบูท Raspberry Pi จากการ์ด SD อื่นเลย หากสามารถบู๊ตจากพาร์ติชั่นบน USB HDD (ฉันเชื่อว่านี่คือสิ่งที่คุณมี) ก็ใช่ว่าจะใช้ได้ แต่โปรดสังเกตว่าตำแหน่งระบบไฟล์รูทถูกจัดเก็บไว้ใน `cmdline.txt` ดังนั้นอย่าลืมปรับค่านั้น และโปรดทราบว่า USB HDD มีความหน่วงแฝงสูงกว่าการ์ด SD ดังนั้นระบบอาจแสดงประสิทธิภาพของดิสก์ช้าลง
Ginnungagap avatar
gu flag
RaspberryPi ไม่สามารถบูตจาก HDD ได้ แต่จะอ่านพาร์ติชันสำหรับบูตจากการ์ด SD เสมอ วิธีที่ดีที่สุดที่คุณสามารถทำได้คือย้ายรูทพาร์ติชันไปยัง HDD โดยปล่อยให้ /boot อยู่ในการ์ด SD
ihorc avatar
cn flag
ที่ไม่เป็นความจริง. คุณอาจพบคำแนะนำมากมายเกี่ยวกับวิธีย้ายระบบ Raspberry Pi จากการ์ด SD ไปยัง HDD/SSD ภายนอก มีแม้กระทั่งการตั้งค่าแยกต่างหากที่รับผิดชอบลำดับความสำคัญในการบู๊ต https://docs.nextcloudpi.com/en/rpi4-chnage-boot-order หรือ `sudo rpi-eeprom-config` หากคุณต้องการบรรทัดคำสั่ง และคุณอาจแปลกใจที่มีโหมด Network Boot ด้วยซ้ำ อย่างน้อยนี่ก็เป็นจริงสำหรับ RPI4 ที่มี bootloader rpi-eeprom เวอร์ชันล่าสุด คนอื่นไม่รู้

โพสต์คำตอบ

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