Как я могу проверить местоположение файла (например, кластер или сектор #) во внутреннем хранилище? -- internal-storage поле с участием file-system пол android Связанный проблема

How Can I Check the Location of a File (e.g. Cluster or Sector #) in the Internal Storage?


1
vote

проблема

русский

Я хотел бы знать, если я определенным файлом переместишься на флэш-память (внутреннее хранилище), между записи / обновлениями.

Есть ли так, как я могу получить местоположение файла на флэш-памяти?
(Номер кластера, номер сектора и т. Д.)

Я использую Android V8,
и может либо установить использовать приложение для этого,
Или используйте командную строку, если соответствующая команда существует в командной строке Linux, что Android имеет.

Английский оригинал

I would like to know If I certain file moves on the Flash memory (internal storage), between writes/updates to it.

Is there some way I can get the file's location on the Flash memory?
(Cluster Number, Sector Number, etc)

I am using Android v8,
and can either install use an App for that,
or use the Command Line, If a relevant command exists in the Linux command-prompt that Android has.

     

Список ответов

0
 
vote

Я предполагаю, что говоря кластер вы имеете в виду Windows ' Блок распределения , обычно называемый блок в мире linux. Это устройство хранения данных файловая система использует. Кластер / блок может состоять из или соответствовать нескольким секторам на основе носителя для хранения (HDD или флэш-память). Сектор - минимальная атомная единица хранения ОС может прочитать или запись. Размер блока определяется во время создания файловой системы I.E. Когда мы форматируем раздел (<код> high-level formatting ). Разделы и файловые системы позволяют легко классифицировать и организовать наши данные на физическом устройстве хранения.

<Сильные> жесткие диски

"Сектор" может относиться к физическому сектору или логический сектор . В первые дни жестких дисков были только физические секторы, созданные путем деления кластеров / отслеживаний на вращающихся дисках на мелкие детали. C YLLinder / H EAD / ECOR (CHS) был популярным методом адресации перед <сильным> л ogical b lock a ddressing (lba) был разработан. Вместо того, чтобы напрямую заниматься физическими секторами, теперь ОС передает прошивку дискового контроллера (через команды SATA / SCSI) со ссылкой на номер LBA. Прошивка взамен поддерживает lba к сопоставлению chs , который включает в себя ECC , G-list (таблица дефекта диска) и т. Д. Это отображение (1: 1 / секвенированное / линейное) ( ref ) создается во время <код> low-level formatting дисковода при изготовлении, который никогда не меняется, за исключением случаев, если какой-то сектор не помечен и перенапряжен с некоторым запасным сектором Отказ Таким образом, ОС / файловая система знает о физической геометрии диска, которая пропорциональна геометрии LBAS.

Storage Storage

на Flash Media (SSDS, EMMC, UFS, SD-карты и т. Д.) Нет вращающихся дисков и, следовательно, без цилиндров. NAND Flash изготовлена ​​из кремниевых клеток, каждая ячейка состоит из одного ( S EVEL- C ELL), два ( M ulti- lc ), три ( t ricle- lc ) или четыре ( q uad - <Сильные> ЛК ) Биты. Клетки сгруппированы в страницы (e.g. of 4kb) и страниц в Стереть блоки (например, 128 КБ). LBAS P HYSICAL B LOCK A Картирование DDRESSES полностью управляется f lash t Ranslation L AYER; Часть прошивки контроллера вспышки. ОС ничего не знает об этом, он может видеть максимум LBA, а не то, что происходит под ним. Даже даже ECC неисправных ячеек памяти, и именно поэтому мы не осознаем Плохое здоровье EMMC, если он не терпит неудачу, кроме чтения <Код> EXT_CSD (требуется root), используя MMC-UTILS или из /sys/class/mmc_host/*/*/life_time (если поддерживает драйвер).

Поскольку страница памяти не может быть просто перезаписана в отличие от жестких дисков, целый EraseBlock должен быть стертый первым, прежде чем быть <сильный > запрограммирован (написано). Побочный эффект состоит в том, что ряд страниц стираются / переписаны, и физическое отображение изменяется, даже если редактируется небольшой файл. Это ненужное чтение-модифицирующее ( RMW ) называется W RITE MPLICITIONAL> MPLICITION. На жесткие диски файлы не физически заменяются, если не укорочены или удлинены. ОС знает об этих физических изменениях на жестком диске, но не на флэш-памяти.

Что такое сектор?

Так ведь то, что мы обеспокоены, является логическим сектором. Средство хранения информирует ОС его логического размера сектора, но " по умолчанию 12 Охватывает самое аппаратное обеспечение «, потому что HDDS использовали <код> 512B с первых дней, хотя все изменилось с 4KN формат для HDDS тоже. <Код> 512B - это размер, какой ОС видит, в действительности это немного больше, чтобы сделать некоторую комнату для заголовка, ECC и т. Д. Размер физического сектора на флэш-памяти - без использования для нас.


Ваши запросы:

Я хотел бы знать, если определенный файл перемещается на флэш-память (внутреннее хранилище), между записи / обновлениями.

Это зависит от определения move ". На флэш-памяти, даже если вы не записываете в файл, он может продолжать изменять его истинное физическое местонахождение из-за фона G AFTROUS C

Оллкин. Феномен, контролируемый FTL внутри, чтобы уменьшить ва, чтобы добиться выравнивания износа и для обеспечения высокой пропускной способности записи ( программа ), удаляя Неверные страницы в фоновом режиме ( Erase операции).

Есть ли какой-то способ, которым я могу получить местоположение файла в памяти Flash (номер кластера, номер сектора и т. Д.)?

Да, вы можете получить блок файловых систем блока файлов, которые имеют линейное отображение с LBAS из базового блочного устройства (раздела). Но эти адреса не являются фактическими / физическими местоположениями файла на флэш-памяти . Однако обычно никто не обеспокоен истинным физическим местоположением, если не участвует некоторое судебное управление или восстановление данных.

<сильный> Пример

 <код> ~# cat /sys/block/mmcblk0/queue/logical_block_size 512 ~# blockdev --getss /dev/block/by-name/cache 512 ~# tune2fs -l /dev/block/by-name/cache | grep 'Block size' Block size:               4096   

Так что размер сектора здесь составляет 512b, а размер блока файловой системы составляет 4kib. Давайте создадим тестовый файл:

 <код> ~# echo foobar >/cache/test_file ~# cat /cache/test_file foobar ~# filefrag -sv -b512 /cache/test_file Filesystem type is: ef53 File size of /cache/test_file is 7 (8 block of 512 bytes)  ext:     logical_offset:        physical_offset: length:   expected: flags:       0:        0..       7:     307200..    307207:      8:             last,eof /cache/test_file: 1 extent found   

* debugfs -R 'stat test_file' /dev/block/by-name/cache Может также использоваться вместо <код> filefrag

созданный файл (из 7 байт) занимает 1 блок файловой системы. <Код> low-level formatting0 преобразует размер блока (4096B) до размера сектора (512b). «TEST_FILE» должен быть на 307200 TH сектора, то же самое для раздела и файловой системы, потому что файловая система занимает весь раздел:

 <код> low-level formatting1  

Давайте прочитаем файл непосредственно из раздела:

 <код> low-level formatting2  

Это там. Теперь найдите файл из запуска EMMC:

 <код> low-level formatting3  

Так что даже если файловая система и раздел удаляются, вы можете прочитать файл (при условии, что он не перезаписан).

Давайте сделаем еще несколько копаний:

 <код> low-level formatting4  
Файл

удален из файловой системы, но физически все еще там. Давайте попросим FTL, чтобы удалить его постоянно:

 <код> low-level formatting5  

И это ушло. Но, скорее всего, это все еще там где-то в o ver- p rovisioning space, запланировано стертым в следующем GC , просто мы не знаем, где это есть.

Примечание:

    .
  • <Код> low-level formatting6 на обнаженные разбиения - убийца. <Сильные> Будьте осторожны!
  • <код> low-level formatting7 и <код> low-level formatting8 - это часть e2fsprogs . <Код> low-level formatting9 не поставляется с Android, построить из источника или попробуйте rel="nofollow noreferrer"> это / a>. <Код> EXT_CSD0 - это подходящий апплет.

Связано:

    .
  • Когда FSTRIM работает?
  • Что делает восстановление удаленных данных сложно / невозможно?

 

I assume by saying cluster you mean Windows' allocation unit, commonly called block in Linux world. It's a unit of data storage a filesystem uses. A cluster/block may consist of or correspond to multiple sectors on underlying storage media (HDD or flash storage). Sector is the minimum atomic unit of storage an OS can read or write. Block size is decided at the time of filesystem creation i.e. when we format a partition (high-level formatting). Partitions and filesystems make it easy to categorize and organize our data on the physical storage device.

HARD DISK DRIVES

"Sector" may refer to a physical sector or logical sector. In early days of HDDs there were only physical sectors created by dividing clusters/tracks on rotating disks into small parts. Cylinder/Head/Sector (CHS) has been a popular method of addressing before the Logical Block Addressing (LBA) was devised. Instead of directly dealing with physical sectors, OS now talks to disk controller firmware (through SATA/SCSI commands) referring an LBA number. Firmware in return maintains an LBA to CHS mapping itself, which includes ECC, G-list (disk's defect table) etc. This mapping (1:1 / sequenced / linear) (ref) is created during low-level formatting of disk drive when manufacturing, which never changes except if some sector is marked bad and remapped to some spare sector. So the OS / filesystem is aware of the physical geometry of the disk, which is propotional to the geometry of LBAs.

FLASH STORAGE

On flash media (SSDs, eMMC, UFS, SD cards etc.) there are no rotating disks and hence no cylinders. NAND flash is made of silicon cells, each cell consists of one (Single-Level-Cell), two (Multi-LC), three (Triple-LC) or four (Quad-LC) bits. Cells are grouped into pages (e.g. of 4KB) and pages into erase blocks (e.g. of 128 KB). LBAs to Physical Block Addresses mapping is fully controlled by Flash Translation Layer; a part of flash controller firmware. OS knows nothing about it, it can see at maximum the LBAs, not what's happening below it. Not even the ECC of failed memory cells, and that's why we don't realize the bad health of eMMC unless it fails, except by reading EXT_CSD (requires root) using mmc-utils or from /sys/class/mmc_host/*/*/life_time (if driver supports).

Since a page of memory can't be just overwritten unlike HDDs, a whole EraseBlock has to be Erased first before being Programmed (written). A side effect is that a number of pages are erased/re-written and the physical mapping changes even if a small file is edited. This unnecessary read-modify-write (RMW) is called Write Amplification. On HDDs, files aren't physically replaced unless shortened or elongated. OS is aware of these physical changes on HDD, but not on flash memory.

WHAT IS SECTOR?

So after all what we are concerned with is logical sector. Storage media informs the OS of its logical sector size but xe2x80x9cthe default of 512 covers most hardwarexe2x80x9d because HDDs have been using 512B from early days, though things have changed with 4Kn format for HDDs too. 512B is the size what OS sees, in actual it's a bit larger to make some room for header, ECC etc. Physical sector size on flash storage is of no use to us.


Your queries:

I would like to know if a certain file moves on the Flash memory (internal storage), between writes/updates to it.

It depends on the definition of xe2x80x9cmovexe2x80x9d. On flash storage, even if you don't write to a file, it may keep on changing its true physical location due to background Garbage Collection; a phenomenon controlled by FTL internally to reduce WA, to achieve Wear Leveling and to provide high write throughput (Program operations) by deleting invalid pages in background (Erase operations).

Is there some way I can get the file's location on the Flash memory (Cluster Number, Sector Number etc.)?

Yes you can get the filesystem block addresses of a file which have a linear mapping with LBAs of underlying block device (partition). But these addresses aren't the actual/physical file's location on the Flash memory. However usually one isn't concerned with true physical location unless some forensics or data recovery is involved.

EXAMPLE

~# cat /sys/block/mmcblk0/queue/logical_block_size 512 ~# blockdev --getss /dev/block/by-name/cache 512 ~# tune2fs -l /dev/block/by-name/cache | grep 'Block size' Block size:               4096 

So the sector size here is 512B while filesystem block size is 4KiB. Let's create a test file:

~# echo foobar >/cache/test_file ~# cat /cache/test_file foobar ~# filefrag -sv -b512 /cache/test_file Filesystem type is: ef53 File size of /cache/test_file is 7 (8 block of 512 bytes)  ext:     logical_offset:        physical_offset: length:   expected: flags:       0:        0..       7:     307200..    307207:      8:             last,eof /cache/test_file: 1 extent found 

* debugfs -R 'stat test_file' /dev/block/by-name/cache can also be used in place of filefrag

Created file (of 7 bytes size) occupies 1 filesystem block. -b 512 converts block size (4096B) to sector size (512B). "test_file" should be at 307200th sector, same for partition and filesystem because filesystem occupies whole partition:

~# blockdev --getsize64 /dev/block/by-name/cache | awk '$1 /= 4096' 65536 ~# tune2fs -l /dev/block/by-name/cache | grep 'Block count' Block count:              65536 

Let's read the file directly from partition:

~# dd if=/dev/block/by-name/cache skip=307200 count=1 | head -c7 foobar 

It's there. Now locate the file from the start of eMMC:

~# readlink /dev/block/by-name/cache /dev/block/mmcblk0p25 ~# cat /sys/block/mmcblk0/mmcblk0p25/start 7471104 ~# dd if=/dev/block/mmcblk0 skip=$(( 7471104 + 307200 )) count=1 | head -c7 foobar 

So even if filesystem and partition are deleted, you can read the file (provided that it's not overwritten).

Let's do some more digging:

~# rm /cache/test_file; sync; echo -n 1 >/proc/sys/vm/drop_caches ~# dd if=/dev/block/mmcblk0 skip=$(( 7471104 + 307200 )) count=1 | head -c7 foobar 

File is deleted from filesystem, but physically still there. Let's ask FTL to delete it permanently:

~# fstrim /cache; sync; echo -n 1 >/proc/sys/vm/drop_caches ~# dd if=/dev/block/mmcblk0 skip=$(( 7471104 + 307200 )) count=1 | head -c7 

And it's gone. But most probably it's still there somewhere in Over-Provisioning Space, scheduled to be Erased in next GC, just we don't know where it is.

Note:

  • dd on naked partitions is a killer. Be cautious!
  • tune2fs and filefrag are part of e2fsprogs. filefrag isn't shipped with Android, build from source or try this one. fstrim is a busybox applet.

RELATED:

  • When should fstrim run?
  • What makes recovery of deleted data difficult / impossible?
 
 

Связанный проблема

2  Где найти IP-адрес в файловой системе (например, proc или sys)  ( Where to find ip address in file system e g proc or sys ) 
Есть ли способ получить адрес IP (v4) интерфейса в файловой системе Android? Я знаю, что я мог бы использовать ifconfig или netcfg, но я хотел бы использовать...

0  Просмотрите всю файловую систему в диалоговом окне «Обзор»?  ( Browse entire file system in browse dialog box ) 
Я пытаюсь использовать Keepassdroid и когда я выбираю кнопку обзора для секции KeyFile, он показывает этот экран: Как видите, он ограничен только «недавн...

3  Гора зашифрованная эмулируемая AVD userdata-Qemu.img.qcow2  ( Mount encrypted emulated avd userdata qemu img qcow2 ) 
Я пытаюсь сделать резервную копию своего AVD. Чтобы ускорить вещи, я люблю делать инкрементные резервные копии. Резервное копирование <код> *.img.qcow2 файла...

0  Изменить файл (картинки, видео) Timestamp от имени файла  ( Change file pictures videos timestamp from filename ) 
При перемещении файлов вокруг TRU различных Dirs и через ПК / смартфон, Timestamp для последней модифицированной даты обычно получают сброс в очень дате време...

7  Как снять или восстановить удаленные файлы на Android? [Дубликат]  ( How do i undelete or recover deleted files on android ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

0  Как изменить звук ключа Android по умолчанию?  ( How to change androids default key press sound ) 
Телефон укоренился, я попытался изменять файл / с; <код> /system/media/audio/ui/*.ogg и их разрешения; <код> -rw-r--r-- Но все еще играет по умолч...

0  Как узнать мое устройство Nexus файл зашифрован?  ( How to know my nexus device is file encrypted ) 
от Android n Новая функция, называемая файловым шифрованием. Как определить, если мое устройство зашифровано файлом. Если я создаю любой новый файл внутри /...

2  Формат файловой системы, используемый для SD-карты Galaxy S3  ( Filesystem format used for sd card by galaxy s3 ) 
Когда я удаляю SD-карту, которая была отформатирована моей Galaxy S3, и поместила его в MacBook, <код> fdisk показывает свой единственный раздел как имеющий ...

2  Заменен / система / bin / toolbox. Как мне вернуть это?  ( Replaced system bin toolbox how to i revert that ) 
Я переименован в оригинал / систему / bin / Toolbox "на" Toolbox_alt ". Я заменил файл / систему / Bin / Toolbox с файлом, который должен был работать, но не ...

0  По ошибке я удалил системную папку из корневого файла, а мой мобильный телефон был укоренен от того, потом мой мобильный телефон не работает, что я могу сделать?  ( By mistake i deleted system folder from root file and my mobile was rooted from ) 
по ошибке я удалил системную папку из корневого файла, и мой мобильный телефон был укоренен от того, потом мой мобильный телефон не работает, что я могу сдела...

5  Как проверить файловую систему (/ SDCard) для ошибок?  ( How to check filesystem sdcard for errors ) 
Я хотел бы проверить мою / sdcard и, возможно, и другие внутренние разделы, для ошибок на уровне файловой системы. Мне интересно, как это может быть достигн...

11  Как расшифровать коррумпиюную SD-карту, отформатированную как внутреннее хранение?  ( How to decrypt the corrupt sd card formatted as internal storage ) 
Так что я на зефире и отформатировал мою SD-карту как внутреннее хранилище. Его файловая система повредила две недели позже по какой-то причине. подключил е...

0  Почему мой (развернутый) / раздел данных выглядит пустым?  ( Why my unrooted data partition appears to be empty ) 
У меня есть Некоторые выпуски с разделом My / Data. Среди прочего, когда я просматриваю его содержимое с приложением ASTRO, оно пусто. Телефон никогда не бы...

4  TWRP CreateTarfork () Ошибка 255 При резервном копировании данных  ( Twrp createtarfork error 255 when backing up data ) 
У меня установлены Freedomos на моем onePlus 5. Я не уверен, что это связано с Freedomos, но когда я пытаюсь сделать резервную копию в TWRP с данными, системо...

9  Как найти путь к раздеванию подкачки на SD-карте?  ( How to find the pathname of the swap partition on sd card ) 
как Это < / a> предупреждает, вы не должны включать совместное помещение по неправильному разделу, или вы можете уничтожить свой телефон: ОК, прежде чем м...

0  Build.prop изменяет хорошо. Но не обновляет в системе (например, о планшете в настройках)  ( Build prop modifies okay but not updates in system e g about tablet in settin ) 
Я работаю Android-X86 4.4 на VirtualBox. Все работает нормально. Но когда я модифицирую build.prop (с ES File Explorer или редактором BuildProp) с другим прои...

3  Неизвестный тип файла, содержащий вирус  ( Unknown file type containing a virus ) 
Я постараюсь сохранить историю как можно коротко, чтобы вы могли иметь более четкий вид на то, что является моей проблемой. В то время как я просматривал Инте...

9  У Android имеет ограничение размера файла 2,1 ГБ?  ( Does android have a 2 1gb file size limit ) 
Я попробовал много приложений типа записи голоса, и лучшее, что я нашел, позволяет мне сделать запись до максимального размера файла 2,1 ГБ. Я могу сделать мн...

30  Как я могу просмотреть таблицу внутреннего раздела Android?  ( How can i view the android internal partition table ) 
Я укоренился с моим устройством, положил его в режим восстановления, и связал его на ПК на PC by adb shell < / a>. Как я могу просмотреть список устройств ...

29  Что такое Android эквивалент / etc / fstab?  ( Whats the android equivalent of etc fstab ) 
Иногда я действительно желаю, чтобы они не так много испортились с Linux! Я знаю, что есть <код> /etc/fstab там где-то, но где? Я хотел бы установить некот...

-2  Как я могу сделать системную папку с записью без укоренения?  ( How can i make the system folder writable without rooting ) 
Мое устройство <код> Sprint Samsung Galaxy S III Номер модели: <Код> SPH-L710 Я хочу сделать это, потому что я хочу остановить звук затвора камеры. И я ...

1  Как я могу проверить местоположение файла (например, кластер или сектор #) во внутреннем хранилище?  ( How can i check the location of a file e g cluster or sector in the interna ) 
Я хотел бы знать, если я определенным файлом переместишься на флэш-память (внутреннее хранилище), между записи / обновлениями. Есть ли так, как я могу получ...

1  Доступ к Android SD из Windows 7 через картридер  ( Access android sd from windows 7 via card reader ) 
Я хочу сделать резервную копию моей SD-карты, прежде чем использовать его в моем новом телефоне. Поэтому я использовал картридер для подключения его к ноутбук...

4  Когда должен бежать Fstrim?  ( When should fstrim run ) 
На основании этого цианогенмод форум нить , я попробовал Чтобы устранить задержку в запущенных приложениях и переключения между приложениями на моей Galaxy N...

3  Где я должен установить Toybox?  ( Where should i install toybox ) 
У меня есть укорененный ретранслятор Samsung Galaxy S 4G android 4.1.2. Если у вас есть Android 6.0 "зефир" или лучше, то у вас есть Toybox . Это пакет ком...

Связанный проблема

2  Где найти IP-адрес в файловой системе (например, proc или sys) 
0  Просмотрите всю файловую систему в диалоговом окне «Обзор»? 
3  Гора зашифрованная эмулируемая AVD userdata-Qemu.img.qcow2 
0  Изменить файл (картинки, видео) Timestamp от имени файла 
7  Как снять или восстановить удаленные файлы на Android? [Дубликат] 
0  Как изменить звук ключа Android по умолчанию? 
0  Как узнать мое устройство Nexus файл зашифрован? 
2  Формат файловой системы, используемый для SD-карты Galaxy S3 
2  Заменен / система / bin / toolbox. Как мне вернуть это? 
0  По ошибке я удалил системную папку из корневого файла, а мой мобильный телефон был укоренен от того, потом мой мобильный телефон не работает, что я могу сделать? 
5  Как проверить файловую систему (/ SDCard) для ошибок? 
11  Как расшифровать коррумпиюную SD-карту, отформатированную как внутреннее хранение? 
0  Почему мой (развернутый) / раздел данных выглядит пустым? 
4  TWRP CreateTarfork () Ошибка 255 При резервном копировании данных 
9  Как найти путь к раздеванию подкачки на SD-карте? 
0  Build.prop изменяет хорошо. Но не обновляет в системе (например, о планшете в настройках) 
3  Неизвестный тип файла, содержащий вирус 
9  У Android имеет ограничение размера файла 2,1 ГБ? 
30  Как я могу просмотреть таблицу внутреннего раздела Android? 
29  Что такое Android эквивалент / etc / fstab? 
-2  Как я могу сделать системную папку с записью без укоренения? 
1  Как я могу проверить местоположение файла (например, кластер или сектор #) во внутреннем хранилище? 
1  Доступ к Android SD из Windows 7 через картридер 
4  Когда должен бежать Fstrim? 
3  Где я должен установить Toybox?