LINUX.ORG.RU

Подскажите графический визуализатор фрагментации (jfs)


0

1

Хочу программу, которая отрисовывает картинку, на которой видно, какой файл как размазан, кто фрагментирован, а кто нет. И желательно интерактивно, как в дефрагментаторах под винду: ткнул на имя файла - и его блоки подсветились. Подозреваю, что подобную инфу можно получить для любой фс, у которой реализован FIEMAP, но мне подойдёт, если будет поддержка jfs.

Фрагментация у меня есть, так что посмотреть будет на что.

rinat@acerone2:/tmp$ /usr/sbin/filefrag /usr/lib/libwireshark.so.0.1.0 
/usr/lib/libwireshark.so.0.1.0: 154 extents found
rinat@acerone2:/tmp$ ls -la /usr/lib/libwireshark.so.0.1.0 
-rw-r--r-- 1 root root 32695572 Фев  7 18:55 /usr/lib/libwireshark.so.0.1.0
★★★★★
Ответ на: комментарий от KRoN73

> 4/4 и 4/128 - есть разница? :)

Что ты ожидаешь услышать? Отрицание очевидных фактов?

Хватит, в среднем, только на 4/128..4/256 = 1,5-3% имеющегося места. Потом начнётся наша проблема.

Я вас и ваши цифры со слешами и точками не понял. И про ваши проблемы не понял.

Всё равно записывать придётся рано или поздно, а сгруппировать запись не получится, так как полностью чистые блоки уже кончились :)

Полностью чистые блоки появляются при стирании.

anonymous
()
Ответ на: комментарий от anonymous

Выбери другую ФС, в чём проблема? Могу посочувствовать в выборе неподходящей ФС.

Аноним, подскажи же мне ФС, которую ты посчитал бы подходящей. А, да, только не надо мне советовать ничего, на чём нету прав доступа (fat, ntfs). Ext2/3/4 и xfs тоже не советуй, они у меня не работают, даже не монтируются (по причине странной поддержки 4k секторов производителями дисков) — у этих систем жесткая фиксация на 512байтные сектора. Reiserfs тоже не советуй, он фрагментируется жуть как, да еще и процессорное время жрет при этом. И btrfs тоже не советуй, её структуры метаданных могут съесть вообще всё место на диске (были тесты), к тому же формат не заморожен. Jfs не надо советовать, потому как она сейчас и используется.

Если у тебя всё еще остались ФС, которые ты мне можешь посоветовать, я с радостью тебя выслушаю.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> > Хватит, в среднем, только на 4/128..4/256 = 1,5-3% имеющегося места. Потом начнётся наша проблема.

Я вас и ваши цифры со слешами и точками не понял. И про ваши проблемы не понял.

Чтобы понять цифры, представь, что на диске три 128-килобайтных блока. После того, как ты запишешь три файла по 4 килобайта, все блоки станут «занятыми», непустыми. А свободного места еще ~97%. И как ты запишешь следующий файл без RMW?

Для ext3 неоднократно предлагались патчи, увеличивающие размер блока (сейчас есть ограничение — не больше страницы, это 4k на x86). Его нет в ядре, так как там появляются проблемы похуже, чем потеря места в хвостах.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

> Чтобы понять цифры, представь, что на диске три 128-килобайтных блока. После того, как ты запишешь три файла по 4 килобайта, все блоки станут «занятыми», непустыми. А свободного места еще ~97%. И как ты запишешь следующий файл без RMW?

Для вас ФС, где в одном блоке может хранится больше одного файла - новость? Герр Reiser смотрит на вас с недоумением.

ky-san
()
Ответ на: комментарий от i-rinat

Тебе нужна универсальная ФС без недостатков, работающая на всех видах накопителей и подходящая для абсолютно всех задач? Удачи в ожидании такого чуда.

ky-san
()
Ответ на: комментарий от ky-san

> Для вас ФС, где в одном блоке может хранится больше одного файла - новость? Герр Reiser смотрит на вас с недоумением.

Прочитайте, пожалуйста, предыдущие сообщения. Речь шла о ФС с 4кб блоками на SSD с erase-block в 128 кб. Аноним заявил, что для компенсации времени на перезапись erase-блока надо писать только в свободные. Ему предъявили наброски расчётов, показывающих несостоятельность метода, он их не понял или понимать не захотел. Я пояснил. А теперь вот пояснил вам, в чём суть спора.

Тебе нужна универсальная ФС без недостатков, работающая на всех видах накопителей и подходящая для абсолютно всех задач? Удачи в ожидании такого чуда.

Есть такой приём - ирония. Это была как раз она. Вот аноним свято уверен, что есть волшебная пуля, а я его попросил эту пулю мне предъявить. Желательно из списка ФС, реализованных в linux штатно. Желательно стабильную и пишущую на диск исключительно блоками, размером кратными 4096 байтам. ext3/4 к ним не относится.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

> Чтобы понять цифры, представь, что на диске три 128-килобайтных блока. После того, как ты запишешь три файла по 4 килобайта, все блоки станут «занятыми», непустыми. А свободного места еще ~97%. И как ты запишешь следующий файл без RMW?

Внезапно блоки можно стереть. Поинт был в том, что для накопителей на SSD должны использоваться другие подходы для нивелирования деградации на некоторых операциях (ещё раз - записываем в свободный блок, старый начинаем удалять, а не переписываем блок).

Для ext3 неоднократно предлагались патчи, увеличивающие размер блока

ext3 - морально устаревшая ФС, что ты от неё хочешь?

anonymous
()
Ответ на: комментарий от i-rinat

> Аноним, подскажи же мне ФС, которую ты посчитал бы подходящей.

Блаженен тот, кто верит в универсальные вещи, подходящие для всего.

Reiserfs тоже не советуй, он фрагментируется жуть как

Не нужно надрачивать на количество сегментов/фрагментацию. Надрачивай на скорость чтения/записи/утилизацию кластеров/блоков.

да еще и процессорное время жрет при этом.

С чем большим количеством «фич» работает ФС - тем больше нагрузка на CPU.

anonymous
()
Ответ на: комментарий от i-rinat

> xfs тоже не советуй, они у меня не работают, даже не монтируются (по причине странной поддержки 4k секторов производителями дисков) — у этих систем жесткая фиксация на 512байтные сектора.

http://linux.die.net/man/8/mkfs.xfs

https://ata.wiki.kernel.org/index.php/ATA_4_KiB_sector_issues

По-моему у тебя руки из жопы:

1) mkfs.{ext,xfs,gfs2,ocfs2} have been updated to work properly with topology information, mkfs.{ext,xfs} are linked against libblkid for compatibility with old kernel (for stripe chunk size / width)

2) This option specifies the fundamental block size of the filesystem. The valid block_size_options are: log=value or size=value and only one can be supplied. The block size is specified either as a base two logarithm value with log=, or in bytes with size=. The default value is 4096 bytes (4 KiB), the minimum is 512, and the maximum is 65536 (64 KiB). XFS on Linux currently only supports pagesize or smaller blocks.

3) This option specifies the fundamental sector size of the filesystem. The sector_size is specified either as a value in bytes with size=value or as a base two logarithm value with log=value. The default sector_size is 512 bytes. The minimum value for sector size is 512; the maximum is 32768 (32 KiB). The sector_size must be a power of 2 size and cannot be made larger than the filesystem block size.

Так и есть, из жопы. У всех работает, а одного нет.

anonymous
()
Ответ на: комментарий от anonymous

> Внезапно блоки можно стереть. Поинт был в том, что для накопителей на SSD должны использоваться другие подходы для нивелирования деградации на некоторых операциях (ещё раз - записываем в свободный блок, старый начинаем удалять, а не переписываем блок).

Еще раз. Модельная ситуация — все файлы по 4 кило. Erase-block 128 кило. Записываем файлы. По твоей методике надо записывать в свободный erase-block. Допустим, этих блоков N штук. Значит всего места на диске 128*N кило. Тогда после записи N файлов по 4 кило будет занято 4*N кило, но все erase-block'и будут заняты, свободных не останется. Для записи (N+1)-го файла надо будет читать-менять-стирать-записывать. И так для каждого следующего файла. При этом места занято: (4*N)/(128*N) = 4/128 = 3%.

Блаженен тот, кто верит в универсальные вещи, подходящие для всего.

Я не просил универсальной вещи, я просил конкретного совета. Знаешь ответ — скажи.

Не нужно надрачивать на количество сегментов/фрагментацию. Надрачивай на скорость чтения/записи/утилизацию кластеров/блоков.

я вообще не «надрачивал» ни на что. О фрагментации я задумался, когда у меня кино стало заикаться. Вот и проверил.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от anonymous

По-моему у тебя руки из жопы: ... Так и есть, из жопы. У всех работает, а одного нет.

Не стану оспаривать твоё мнение, вот тебе факты, сам и решай.

Такое вываливается тоннами в dmesg (меняются только размеры — 512, 1024, 3072):

[ 2595.093595] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[ 2595.097302] ata2.00: BMDMA stat 0x5
[ 2595.100427] ata2.00: failed command: READ DMA
[ 2595.103191] ata2.00: cmd c8/00:02:02:c0:d1/00:00:00:00:00/ed tag 0 dma 1024 in
[ 2595.103196]          res 51/10:02:02:c0:d1/00:00:00:00:00/ed Emask 0x81 (invalid argument)
[ 2595.108796] ata2.00: status: { DRDY ERR }
[ 2595.111981] ata2.00: error: { IDNF }
[ 2595.128438] ata2.00: configured for UDMA/100
[ 2595.131964] ata2: EH complete

fs/xfs/linux-2.6/xfs-super.c:

	sb_min_blocksize(sb, BBSIZE);
	sb->s_xattr = xfs_xattr_handlers;

fs/xfs/xfs_fs.h:

#define BBSHIFT		9
#define BBSIZE		(1<<BBSHIFT)

В код XFS ты не смотрел. В исходном коде xfs жестко зашито BBSIZE равное 512. А значение, которое возвращает sb_min_blocksize не проверяется и не используется.

В XFS жестко зашит тот факт, что сектора всегда 512 байт. Так называемые AF диски работаю только потому что они при записи блока длиной менее 4096 байт самостоятельно производят цикл read-modify-write. Конечно же с задержками. У меня в диске такого нет, он не может записать 512 байт. Только 4096.

Предсказываю реакцию с твоей стороны — «ошибка в диске», «виноват диск». Может и так, но в XFS тоже явная ошибка. Я её исправить не смогу. О, а давай ты и исправишь?

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от anonymous

У всех работает, а одного нет.

Вот, добрался до той системы, о которой говорил. Создал ФС, попытался смонтировать:

mkfs.xfs -b size=4096 -s size=4096 -f /dev/sda3
mount /dev/sda3 /mnt
и получаю вот это:
[   89.392065] wlan0: no IPv6 routers present
[  469.331619] SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled
[  469.344868] SGI XFS Quota Management subsystem
[  469.362307] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[  469.368400] ata2.00: BMDMA stat 0x5
[  469.376219] ata2.00: failed command: READ DMA
[  469.382960] ata2.00: cmd c8/00:01:00:c0:d1/00:00:00:00:00/ed tag 0 dma 512 in
[  469.382971]          res 51/10:01:00:c0:d1/00:00:00:00:00/ed Emask 0x81 (invalid argument)
[  469.395314] ata2.00: status: { DRDY ERR }
[  469.403453] ata2.00: error: { IDNF }
[  469.424458] ata2.00: configured for UDMA/100
[  469.427568] ata2: EH complete
[  469.430870] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[  469.434090] ata2.00: BMDMA stat 0x5
[  469.437282] ata2.00: failed command: READ DMA
[  469.440374] ata2.00: cmd c8/00:01:00:c0:d1/00:00:00:00:00/ed tag 0 dma 512 in
[  469.440379]          res 51/10:01:00:c0:d1/00:00:00:00:00/ed Emask 0x81 (invalid argument)
[  469.446556] ata2.00: status: { DRDY ERR }
[  469.449649] ata2.00: error: { IDNF }
[  469.476495] ata2.00: configured for UDMA/100
[  469.482322] ata2: EH complete
[  469.488414] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[  469.491727] ata2.00: BMDMA stat 0x5
[  469.494649] ata2.00: failed command: READ DMA
[  469.497637] ata2.00: cmd c8/00:01:00:c0:d1/00:00:00:00:00/ed tag 0 dma 512 in
[  469.497642]          res 51/10:01:00:c0:d1/00:00:00:00:00/ed Emask 0x81 (invalid argument)
[  469.504914] ata2.00: status: { DRDY ERR }
[  469.507910] ata2.00: error: { IDNF }
[  469.532471] ata2.00: configured for UDMA/100
[  469.536752] ata2: EH complete
[  469.541212] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[  469.544122] ata2.00: BMDMA stat 0x5
[  469.546977] ata2.00: failed command: READ DMA
[  469.549818] ata2.00: cmd c8/00:01:00:c0:d1/00:00:00:00:00/ed tag 0 dma 512 in
[  469.549823]          res 51/10:01:00:c0:d1/00:00:00:00:00/ed Emask 0x81 (invalid argument)
[  469.555642] ata2.00: status: { DRDY ERR }
[  469.558572] ata2.00: error: { IDNF }
[  469.584453] ata2.00: configured for UDMA/100
[  469.587199] ata2: EH complete
[  469.590197] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[  469.592921] ata2.00: BMDMA stat 0x5
[  469.595798] ata2.00: failed command: READ DMA
[  469.598458] ata2.00: cmd c8/00:01:00:c0:d1/00:00:00:00:00/ed tag 0 dma 512 in
[  469.598463]          res 51/10:01:00:c0:d1/00:00:00:00:00/ed Emask 0x81 (invalid argument)
[  469.603913] ata2.00: status: { DRDY ERR }
[  469.610337] ata2.00: error: { IDNF }
[  469.636475] ata2.00: configured for UDMA/100
[  469.639100] ata2: EH complete
[  469.641983] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[  469.647420] ata2.00: BMDMA stat 0x5
[  469.652578] ata2.00: failed command: READ DMA
[  469.657935] ata2.00: cmd c8/00:01:00:c0:d1/00:00:00:00:00/ed tag 0 dma 512 in
[  469.657945]          res 51/10:01:00:c0:d1/00:00:00:00:00/ed Emask 0x81 (invalid argument)
[  469.668599] ata2.00: status: { DRDY ERR }
[  469.673852] ata2.00: error: { IDNF }
[  469.696497] ata2.00: configured for UDMA/100
[  469.699634] sd 1:0:0:0: [sda]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[  469.702928] sd 1:0:0:0: [sda]  Sense Key : Aborted Command [current] [descriptor]
[  469.707014] Descriptor sense data with sense descriptors (in hex):
[  469.711245]         72 0b 14 00 00 00 00 0c 00 0a 80 00 00 00 00 00 
[  469.714301]         0d d1 c0 00 
[  469.717192] sd 1:0:0:0: [sda]  Add. Sense: Recorded entity not found
[  469.719992] sd 1:0:0:0: [sda] CDB: Read(10): 28 00 0d d1 c0 00 00 00 01 00
[  469.723104] end_request: I/O error, dev sda, sector 231849984
[  469.725958] XFS: SB buffer read failed
[  469.725980] ata2: EH complete

Видно, что пытается прочитать 512 байт, хотя я явно указал, что сектор и блок размерами по 4 килобайта. Диск не сбойный, я с него сейчас только загрузился.

Кстати, аноним. Ты привел замечательную цитату:

XFS on Linux currently only supports pagesize or smaller blocks.

x86 pagesize == 4096 байт

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

> По твоей методике надо записывать в свободный erase-block.

По любым «методикам» на основанных на флеш устройствах нужно записывать в erased блок. Сюрприз?

Для записи (N+1)-го файла надо будет читать-менять-стирать-записывать. И так для каждого следующего файла

Советую ознакомиться с дизайном современных ФС. Особенно обрати внимание на COW & WA.

> Блаженен тот, кто верит в универсальные вещи, подходящие для всего.

Я не просил универсальной вещи, я просил конкретного совета. Знаешь ответ — скажи.

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

anonymous
()
Ответ на: комментарий от i-rinat

> Кстати, аноним. Ты привел замечательную цитату:

Тебе и нужно 4096.

[избыточные логи поскипанны]

Раз не догадался сам, давай сюда uname -a & информацию о диске.

Если пришлёшь такой диск - приведу XFS в рабочее состояние (не сразу, загруженн сильно, ETA ~1-2 month)

anonymous
()
Ответ на: комментарий от anonymous

Если пришлёшь такой диск - приведу XFS в рабочее состояние (не сразу, загруженн сильно, ETA ~1-2 month)

Меня жаба душит. Если я передумаю в течение двух недель, как мне тебя найти?

Советую ознакомиться с дизайном современных ФС. Особенно обрати внимание на COW & WA.

А как расшифровывается WA? С дизайном, конечно, интересно знакомиться. Но мне ближе ФС, которые уже есть в ядре и работают.

Тебе и нужно 4096.

Аноним заявлял, что я ССЗБ, у которого размер блока == размеру сектора, видимо подразумевая, что размер блока надо было делать больше 4кб. Это был другой аноним?

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Раз не догадался сам, давай сюда uname -a & информацию о диске.

Что-то я не совсем понял, чем поможет uname -a и какая еще информация нужна. ATA ID? Я уверен, что смотреть ты там будешь на 106, 117 и 118 слова. 0x6003, 0x0100, 0x0000 соответственно. Диск Toshiba MK1231GAL.

Linux acerone2 2.6.38-rc7-jfsfiemap #1 SMP Mon Mar 7 11:22:59 UTC 2011 i686 GNU/Linux

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Не п№%ди. Всё есть и всё должно работать:

Попробуй посмотреть на ситуацию с моей стороны: некто на форуме обвиняет меня во лжи (намеренной) и говорит, что всё должно работать. А я сижу и смотрю на кучу printk, вывалившихся на экран и нифига не смонтированную xfs, а ведь я её только что создал и указал размеры блоков и секторов в 4096 байт. А оно все равно не смонтировалось. Кому мне верить?

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

> Попробуй посмотреть на ситуацию с моей стороны: некто на форуме обвиняет меня во лжи (намеренной)

Ещё раз, размеры блока и сектора в XFS «гвоздями» не прибиты. Залогируй, если не веришь, и посмотри. Так что тут ты был не прав. Если ты считаешь, все проблемы только из-за кривых ФС - то ошибаешься.

а ведь я её только что создал и указал размеры блоков и секторов в 4096 байт

Молодец. Не вижу фразы про aligment начала раздела с XFS. Наверное это потому, что на это наплевал?

anonymous
()
Ответ на: комментарий от anonymous

Ещё раз, размеры блока и сектора в XFS «гвоздями» не прибиты.

Я в курсе, но первая операция, которую пытается произвести драйвер xfs — чтение 512-байтного куска. Дальше этого не движется.

Если ты считаешь, все проблемы только из-за кривых ФС - то ошибаешься.

Я не считаю XFS кривой. Я сказал, что в текущей реализации ошибка. Её не видно, так как почти все устройства имеют минимальный размер IO в 512 байт.

Вообще-то мне нравится идея отложенного размещения.

Молодец. Не вижу фразы про aligment начала раздела с XFS. Наверное это потому, что на это наплевал?

Если бы раздел не был выровненным на 4096 байт, я бы ведь не смог на нем jfs создать и смонтировать?

root@acerone2:~# parted /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit b                                                           
(parted) p free                                                           
Model: ATA TOSHIBA MK1231GA (scsi)
Disk /dev/sda: 120034123776B
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start          End            Size           File system     Name  Flags
        17408B         1048575B       1031168B       Free Space
 1      1048576B       117633449983B  117632401408B  jfs             qwer
 2      117633449984B  118707191807B  1073741824B    linux-swap(v1)
 3      118707191808B  120029446143B  1322254336B    ext4
        120029446144B  120034106879B  4660736B       Free Space

(parted)  

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

> Я в курсе, но первая операция, которую пытается произвести драйвер xfs — чтение 512-байтного куска. Дальше этого не движется.

Что говорит dmesg | grep 'sd '?

anonymous
()
Ответ на: комментарий от anonymous

dmesg | grep 'sd '

[    2.263796] sd 1:0:0:0: [sda] 234441648 512-byte logical blocks: (120 GB/111 GiB)
[    2.263912] sd 1:0:0:0: [sda] 4096-byte physical blocks
[    2.264334] sd 1:0:0:0: [sda] Write Protect is off
[    2.264440] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    2.264547] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.568662] sd 1:0:0:0: [sda] Attached SCSI disk
[    3.603463] sd 2:0:0:0: [sdb] 501760 512-byte logical blocks: (256 MB/245 MiB)
[    3.604191] sd 2:0:0:0: [sdb] Write Protect is off
[    3.604280] sd 2:0:0:0: [sdb] Mode Sense: 23 00 00 00
[    3.605059] sd 2:0:0:0: [sdb] No Caching mode page present
[    3.605149] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[    3.608083] sd 2:0:0:0: [sdb] No Caching mode page present
[    3.608168] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[    3.611810] sd 2:0:0:0: [sdb] No Caching mode page present
[    3.611901] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[    3.611991] sd 2:0:0:0: [sdb] Attached SCSI removable disk
[  469.699634] sd 1:0:0:0: [sda]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[  469.702928] sd 1:0:0:0: [sda]  Sense Key : Aborted Command [current] [descriptor]
[  469.717192] sd 1:0:0:0: [sda]  Add. Sense: Recorded entity not found
[  469.719992] sd 1:0:0:0: [sda] CDB: Read(10): 28 00 0d d1 c0 00 00 00 01 00
[  504.575062] sd 1:0:0:0: [sda]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[  504.577815] sd 1:0:0:0: [sda]  Sense Key : Aborted Command [current] [descriptor]
[  504.589386] sd 1:0:0:0: [sda]  Add. Sense: Recorded entity not found
[  504.592226] sd 1:0:0:0: [sda] CDB: Read(10): 28 00 0d d1 c0 00 00 00 01 00

sdb — это флешка для /boot

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Смотри drivers/scsi/sd.c

Посмотри, что и почему передаётся функциям blk_queue_io_min, blk_queue_io_opt, blk_queue_logical_block_size.

В качестве быстрого и грязного хака можешь в sd_read_capacity сделать override sector_size и руками его выставить в 4096

anonymous
()
Ответ на: комментарий от anonymous

Почему у тебя logical block size 512?

Потому что диск хочет lba в 512б единицах.

Выложи куда-нибудь /var/log/messages после загрузки

(Отрезал данные о прошлых загрузках) http://pastebin.com/ZirEEdi9

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от anonymous

В качестве быстрого и грязного хака можешь в sd_read_capacity сделать override sector_size и руками его выставить в 4096

Я пробовал поменять в 106 и 117 словах ID значения и сделать 4096 logical. Но после этого диску передаются lba 4096-based вместо 512-based. Дописывать еще и преобразование lba это уже слишком грязно.

Я поменял sb_min_blocksize, чтобы он отдавал размер физического сектора. После этого заработали ext2/3/4 и hfs/hfsplus. Но Ts'o написал, что это поломает разделы с 1k blocksize ext4 у обладателей Advanced Format дисков.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> В качестве ещё одного хака попробуй тогда заменить logical на physical в xfs_setsize_buftarg_early()

Заработало. В том смысле, что я смог смонтировать раздел; чтение/запись работают. Спасибо.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

> блин, когда же будет дефраг для jfs и reiserfs?

Для reiserfs вряд ли уже. Шишкин говорил, что для reiser4 можно написать плагин для дефрагментации, но некому.

overmind88 ★★★★★
()
Ответ на: комментарий от i-rinat

> получил kernel panic

а нет, всё нормально, это глюк 2.6.38-rc7

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Незачто. Ещё почитай про опции монтирования и журналирования. Думаю, тебе после внимательного прочтения захочется пересоздать ФС

anonymous
()
Ответ на: комментарий от anonymous

> Думаю, тебе после внимательного прочтения захочется пересоздать ФС

Это нетбук. Сомневаюсь, что мне не подойдут параметры по-умолчанию. Меня напрягает перспектива сидеть на ядре с доморощенными патчами. Если что случится, я не смогу, загрузившись с live-usb, даже смонтировать свой диск. Собственно поэтому у меня сейчас jfs, а не xfs или ext4.

i-rinat ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.