Есть ли какая-нибудь команда, которая выводит начальный и конечный блоки жесткого диска файла? ( Решение отмечено как принятое)
Обновление:
Приведенные ниже ответы являются ответом на исходный запрос. Благодарю их всех. Но меня немного смущает то, что LBA не помещается в диапазон блоков, показанный fdisk
. (однако уменьшение вдвое числа совпадает с диапазоном; значит ли это, что размер блока LBA равен 2048?!?)
Используйте hdparm
:
sudo hdparm --fibmap FILENAME
где FILENAME
- путь к вашему файлу.
Что касается ваших расчетов:
97504 * 512/1024 ^ 2 = 47,6 вот как вы это делаете.
Относительно несоответствия в диапазоне блоков:
Вы обошли диск NTFS на выходе fdisk
, который заканчивается на LBA 251863039, вывод hdparm
сообщает, что файловая система, в которой находится тестируемый файл, начинается с LBA 251863040. Таким образом, вы смотрите на неправильную файловую систему в выводе fdisk
, потому что ваш файл находится на sda2
, а не на sda1
.
Инструменты, которые вы, вероятно, ищете tail
и head
.
tail -5 file.txt
head -5 file.txt
Это даст вам последние 5 (хвост) и первые 5 строк (голова) файла.txt
Для файловой системы ext4 команда
sudo debugfs /dev/sda1 <<<"blocks /boot/vmlinuz-3.11.0-14-generic"
показывает все блоки, используемые данным файлом, поэтому вы можете извлечь первый и последний блоки по мере необходимости.