การติดตั้งดิสก์อิมเมจในรูปแบบ Raw


11

ในขณะที่พยายามเมานต์อิมเมจดิสก์ในรูปแบบ Raw (dd) โดยใช้คำสั่งต่อไปนี้

mount  nps-2010-emails.dd /media/manu/

ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้

mount: you must specify the filesystem type

ฉันรู้ว่าการใช้-tเราสามารถระบุระบบไฟล์ แต่อะไรคือคำศัพท์สำหรับไฟล์ RAW (dd) ซึ่งสามารถส่งผ่านเป็นอาร์กิวเมนต์ไปยังคำสั่ง mount หากวิธีการเมานต์ระบบไฟล์ของฉันผิดโปรดช่วยฉันทำเช่นเดียวกัน

$ file -s nps-2010-emails.dd
nps-2010-emails.dd: x86 boot sector; 
partition 1: ID=0xb, starthead 254, startsector 1, 20479 sectors, extended partition table (last)\011, code offset 0x0

$ fdisk -l nps-2010-emails.dd
Disk nps-2010-emails.dd: 10 MB, 10485760 bytes
255 heads, 63 sectors/track, 1 cylinders, total 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

             Device Boot      Start         End      Blocks   Id  System
nps-2010-emails.dd1               1       20479       10239+   b  W95 FAT32 

คุณสามารถเพิ่มผลลัพธ์ของคำสั่งfile -s nps-2010-emails.ddลงในโพสต์ของคุณได้ไหม?
ขับขี่เหล็ก

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

@steeldriver เอาท์พุทเพิ่ม ...
spaceman_spiff

ตัวเลือกที่ง่ายขึ้นสำหรับการติดตั้ง - พร้อมใช้ / อธิบายได้ที่นี่: askubuntu.com/questions/69363/…
Hannu

คำตอบ:


16

จากhttp://major.io/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/มีข้อเสนอแนะให้ใช้ออฟเซ็ต ครั้งแรกที่ได้รับการชดเชยผ่านfdisk(8)แล้วระบุด้วยตัวเลือกในการoffset mountใช้fdiskเพื่อกำหนดเซกเตอร์เริ่มต้นของพาร์ติชันและขนาดเซกเตอร์ จากนั้นคำนวณออฟเซ็ตเป็นไบต์โดยใช้หมายเลขเซกเตอร์เริ่มต้นและขนาดเซกเตอร์เป็นไบต์ ดูMount พาร์ติชันเดียวจากภาพของดิสก์ทั้งหมด (อุปกรณ์)สำหรับตัวอย่าง สุดท้าย:

mount -o offset=<offset in bytes> nps-2010-emails.dd /media/manu/

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

จากผลลัพธ์ของfdiskตรงนั้นคุณจะเห็นขนาดเซกเตอร์เป็น 512 ไบต์และเริ่มที่เซกเตอร์ 1 ดังนั้นอ็อฟเซ็ตคือ 1 * 512 = 512 ลองคำสั่งต่อไปนี้:

mount -t vfat -o offset=512 ps-2010-emails.dd /media/manu/

ฉันเพิ่มประเภทระบบไฟล์ตั้งแต่fdiskให้เป็น FAT32 หากต้องการติดตั้งเพื่อเขียนเช่นกันให้ใช้-o offset=512,rwแทน


ฉันได้อ่านบทความในลิงค์แรกที่คุณโพสต์แล้ว แต่ไม่เข้าใจมากเกี่ยวกับออฟเซ็ต , หมายเลขเซกเตอร์และแนวคิดอื่น ๆ หากเป็นไปได้โปรดอธิบายรายละเอียดในหัวข้อนี้หรือโพสต์ข้อมูลอ้างอิงบางส่วนเพื่อศึกษาเดียวกัน Thanx
spaceman_spiff

fdisk -l nps-2010-emails.ddโพสต์การปรับปรุงให้มีการส่งออกของ
spaceman_spiff

ขอบคุณพื้นหลังของฉันอยู่ในวิทยาการคอมพิวเตอร์เชิงทฤษฎี (ฉันเป็นวิชาคณิตศาสตร์) มีการอ้างอิงใด ๆ ที่จะเข้าใจหัวข้อนี้ในบันทึกทั่วไปหรือไม่?
spaceman_spiff

หัวข้อ 'นี่' เป็นดิสก์เซ็กเตอร์ระบบไฟล์และทั้งหมดนั้นไหม บางทีคุณอาจเริ่มด้วยบท IO / Storage ของหนังสือเรียนระบบปฏิบัติการเช่นของ Tannenbaum นอกเหนือจากพื้นฐานเหล่านั้นและประเภทการเมานต์ FAT32 ทุกสิ่งที่ฉันโพสต์ในคำตอบนั้นมาจาก tholinks
muru

10

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

จึงช่วยให้ว่าคุณทิ้งทั้งหมดของคุณเป็นสิ่งที่เรียกว่า/dev/sda sda.imgคุณสามารถเข้าถึงพาร์ติชันดังต่อไปนี้:

losetup -f -P sda.img

ในระบบของฉันมันจะแสดงขึ้นดังนี้:

ภาพดิบ sda

ในสภาพแวดล้อมที่ไม่ใช่ GUI คุณสามารถแสดงรายการอุปกรณ์ที่สร้างด้วยlosetup -lซึ่งจะบอกชื่อของอุปกรณ์วนรอบให้คุณทราบ:

# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /path/mmcblk0

จากนั้นคุณสามารถเมานต์พาร์ติชันแรกด้วย:

mount /dev/loop0p1 /mnt/mypartition

หวังว่าจะช่วย


ทำงานให้ฉันอย่างสมบูรณ์แบบ
praveen pathak

2
ในบรรทัดเดียวกันนี้บน Ubuntu 18.04 ฉันไม่มีปัญหาในการทำ "gparted backup.img" และรับรายการพาร์ติชัน "fdisk -l backup.img" ยังแสดงข้อมูลที่เป็นประโยชน์
RoundSparrow hilltx

1
คุณจะยกเลิกlosetupคำสั่งได้อย่างไร
Flimm

1

ไม่สามารถเพิ่มความคิดเห็นได้เนื่องจากขาดชื่อเสียง แต่ต้องการบอกกับผู้ที่มี GPT ดิสก์เมื่อทำการทดสอบด้วย fdisk ใช้ gdsik แทนเพื่อเริ่มเซกเตอร์เริ่มต้นและนับออฟเซ็ตที่เหมาะสม มันช่วยฉัน

fdisk -l ให้ฉัน:

      Device Boot      Start         End      Blocks   Id  System
vm2080737.bak1   *           1        3901    31457279+  ee  GPT

และไม่สามารถเมานต์ด้วย 512 offset พร้อมข้อผิดพลาด 'mount: คุณต้องระบุประเภทระบบไฟล์'

gdisk -l ให้ผลลัพธ์ที่ดี:

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34             545   256.0 KiB   A501  gpboot
   2             546          993825   485.0 MiB   A502  swap
   3          993826        62914526   29.5 GiB    A503  rootfs

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