UEFI и LVM вызывают зависание BIOS при различных условиях

[117402] Значением "Blockcount" является [117793]i_blocks[117794] поле [12176]struct ext2_inode[12177]. Это значение является [117797] возвращенным в системный вызов [117921] stat[117922] в поле [117923]st_blocks[117924][117798]. По историческим причинам единицей этого поля являются блоки размером 512 байт - на ранних Unix-файловых системах это был размер файловых системных блоков, а теперь это просто произвольная единица. Видно, что значение [117799]увеличено[117800] и [117801]декрементировано[117802] в зависимости только от размера файла далее в [117803]fs/stat.c[117804].[12178]Это же значение можно увидеть, запустив [117805]stat /device3/test70[117806] ("Blocks: 88"). [12179]Файл на самом деле содержит 18 блоков, что, как и ожидалось, с размером блока 4 кБ (файл имеет длину 71682 байта, а не разреженные, и 17 × 4096 \< 71682 ≤ 18 × 4096).[12180]Это, вероятно, выходит как удивительно, что количество 512-байтных блоков составляет 88, а не 141 (потому что 140 × 512 \< 71682 ≤ 141 × 512) или 144 (что составляет 18 × 4096/512). Причина связана с вычислением в [117807]fs/stat.c [117808], с которым я связал выше. Ваш скрипт создает этот файл, многократно пробегая мимо конца, и для вычисления поля [117809]i_blocks[117810] файл разрежен - есть целые 512-байтовые блоки, которые никогда не записываются и, следовательно, не учитываются в [117811]i_blocks[117812]. (Однако, нет ни одного блока памяти, который бы полностью искался в прошлом, так что файл на самом деле не редкий)[12181]Если вы скопируете файл, вы увидите, что в копии 144 таких блока, как ожидалось (обратите внимание, что вам нужно запустить [117813]cp --sparse=never[117814], потому что GNU [117815]cp[117816] пытается быть умным и ищет, когда видит просторы нулей). [12182]Что касается количества расширений, то создание файла так, как вы делаете последовательный поиск после конца, не является ситуацией, для которой файловые системы, как правило, оптимизированы. Я думаю, что эвристика в драйвере файловой системы сначала решит, что вы создаете небольшой файл, поэтому начните с резервирования пространства по одному блоку за раз; позже, когда файл вырастет, эвристика начнет резервировать несколько блоков за раз. Если вы создаете файл большего размера, вы должны увидеть увеличение больших объёмов. Но я не знаю ext4 достаточно подробно, чтобы быть уверенным.[117413]
2
23.02.2016, 08:12
1 ответ

Попробуйте использовать Intel BITS (в CSM), Intel CHIPSEC, Canonical FWTS и Intel LUV-live на этом устройстве и просмотрите полученные журналы тестирования, чтобы увидеть если в системе есть дефекты, которые могут быть причиной этого. Посетите сайт Toshiba для получения обновлений прошивки и спросите на их форумах поддержки.

0
27.01.2020, 22:54

Теги

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