Монтаж зображення диска у сирому форматі


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будь ласка, додати висновок команди до своєї публікації?
steeldriver

Я переглянув ваш профіль і побачив інше питання. Можливо, ця публікація в блозі може допомогти.
муру

@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 -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, все, що я розмістив у відповіді, - це від талінок.
муру

10

Ви також можете змусити комп'ютер автоматично сканувати всі розділи на дамп і автоматично готувати всі петлі пристроїв, як описано тут .

Отже, скажімо, що ви кинули ціле /dev/sdaу щось, що називається sda.img. Ви можете отримати доступ до його розділів наступним чином:

losetup -f -P sda.img

Потім у моїй системі вона відображається так:

sda raw зображення

У середовищах, які не є графічним інтерфейсом, ви можете перелічити створений пристрій 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команду?
Флім

1

Неможливо додати коментар через відсутність репутації, але хочу сказати тим, хто має диск GPT під час тестування його за допомогою fdisk, використовуйте gdsik замість цього, щоб запустити сектор та підрахувати належне зміщення. Це мені допомогло.

fdisk -l дав мені:

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

і його неможливо встановити зі зміщенням 512 з помилкою '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.
муру
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.