Создавая мягкую фетровую шляпу NON-UEFI 21 палка usb (или, DVD)

hdparm

Я не на 100% уверен, что это - то, что Вы ищете, но я полагаю, что можно сделать это использование команды hdparm, конкретно с --fibmap переключатель.

выборка

   --fibmap
          When  used,  this  must  be the only option given.  It requires a 
          file path as a parameter, and will print out a list of the block 
          extents (sector ranges) occupied by that file on disk.  Sector 
          numbers are  given as absolute LBA numbers, referenced from sector 
          0 of the physical device rather than from the partition or 
          filesystem.  This information can then be used for a variety of 
          purposes,  such  as examining the degree of fragmenation of larger 
          files, or determining appropriate sectors to deliberately corrupt 
          during fault-injection testing procedures.

          This option uses the new FIEMAP (file extent map) ioctl() when 
          available,  and  falls  back  to  the older  FIBMAP (file block 
          map) ioctl() otherwise.  Note that FIBMAP suffers from a 32-bit 
          block-number interface, and thus not work beyond 8TB or 16TB.  
          FIBMAP is also very slow, and  does  not  deal well  with  
          preallocated uncommitted extents in ext4/xfs filesystems, unless a 
          sync() is done before using this option.

Пример

Скажите, что у нас есть файл примера.

$ echo "this is a test file" > afile

Теперь, когда мы работаем hdparm.

$ sudo hdparm --fibmap afile 

afile:
 filesystem blocksize 4096, begins at LBA 0; assuming 512 byte sectors.
 byte_offset  begin_LBA    end_LBA    sectors
           0  282439184  282439191          8

filefrag

Другой хороший метод для обнаружения начала файла и конечных блоков filefrag. Необходимо будет использовать соответствующие переключатели хотя, для получения желаемого вывода. Один позитивный аспект этого инструмента hdparm тот любой пользователь, может выполнить его, таким образом, нет sudo требуется. Необходимо будет использовать -b512 переключитесь так, чтобы выводы были отображены в 512-байтовых блоках. Также мы должны сказать filefrag быть подробным.

Пример

$ filefrag -b512 -v afile
Filesystem type is: ef53
File size of afile is 20 (8 block of 512 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..       7:  282439184.. 282439191:      8:             eof
afile: 1 extent found

debugfs

Третий метод для получения LBAs файла должен использовать debugfs. Этот метод потребует небольшой математики, но я думал, что это важный показало, как можно преобразовать из значения степеней, о котором сообщают debugfs к LBAs, для тех, которым могло бы быть любопытно.

Поэтому давайте запустимся с inode файла.

$ ls -i afile
6560281 afile

Примечание: Мы могли также использовать имя файла в debugfs но для этой демонстрации я собираюсь использовать inode вместо этого.

Теперь давайте доберемся stat информация через debugfs о нашем inode.

$ sudo debugfs -R "stat <6560281>" /dev/mapper/fedora_greeneggs-home
debugfs 1.42.7 (21-Jan-2013)
Inode: 6560281   Type: regular    Mode:  0664   Flags: 0x80000
Generation: 1999478298    Version: 0x00000000:00000001
User:  1000   Group:  1000   Size: 20
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 8
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x52be10c3:a640e994 -- Fri Dec 27 18:44:03 2013
 atime: 0x52bff8a1:a9f08020 -- Sun Dec 29 05:25:37 2013
 mtime: 0x52be0fe7:18a2f344 -- Fri Dec 27 18:40:23 2013
crtime: 0x52be0dd8:64394b00 -- Fri Dec 27 18:31:36 2013
Size of extra inode fields: 28
Extended attributes stored in inode body: 
  selinux = "unconfined_u:object_r:user_home_t:s0\000" (37)
EXTENTS:
(0):35304898

Важная информация находится в разделе степеней. Это блоки на самом деле файловой системы, которые используются этим inode. Мы просто должны преобразовать их в LBA. Мы можем сделать это посредством следующего уравнения.

Примечание: Предположение, что наша файловая система использует 4k размеры блока и что используемое оборудование использует 512-байтовые единицы, мы должны умножить exents на 8.

beginning LBA = (BEGIN EXTENT) * 8
ending LBA    = (((ENDING EXTENT) + 1) * 8) - 1

Пример

Таким образом в нашем примере наше начало и конечная степень являются тем же, начиная с наших соответствий файла в единственной степени.

beginning LBA = 35304898 * 8             = 282439184
ending LBA    = ((35304898 + 1) * 8) - 1 = 282439191

Таким образом, наши LBAs 282439184.. 282439191.

Ссылки

2
28.04.2015, 13:26
2 ответа

Так что кажется, что это не ISO, в конце концов. В какой-то момент я заметил, что у USB-палочки был на ней раздел GPT. Итак, следуя инструкциям в https://fedoraproject.org/wiki/how_to_create_and_use_live_usb#litd

Я сбрасываю его:

 #livecd-iso-to-disk  --format --reset-mbr --overlay-size-mb 1024 /home/alf/Fedora-Live-MATE_Compiz-x86_64-21-5.iso /dev/sd

, который дал мне нерабочее палку. Хотел бы я сказать легко и интуитивно понятно - это не.

4
27.01.2020, 22:00

У меня это тоже сработало. Спасибо "Alien Life Form".

Здесь я устанавливаю Fedora.iso на USB-накопитель, который идентифицируется как / dev / sdb. Для полноты (но не показано) я удалил все разделы на этом USB-накопителе, на всякий случай.

root@linux# dnf install livecd-tools

root@linux# livecd-iso-to-disk --format --reset-mbr --overlay-size-mb 1024 /home/user/Download/Fedora.iso /dev/sdb
0
27.01.2020, 22:00

Теги

Похожие вопросы