LINUX.ORG.RU

Сообщения aidaho

 

Взлёт телескопа James Webb

Фотографы постановили, что зеркалки не нужны.
Поэтому самую большую решили выкинуть в космос.

https://www.youtube.com/watch?v=7nT7JGZMbtM

Старт запланирован на 12:20 UTC

aidaho@optiplex:~/$ zdump UTC
UTC                Sat Dec 25 11:09:31 2021 UTC

 ,

aidaho
()

PSA: выкиньте Dolphin из session-restore, если вам дорога .bash_history

Пару дней тому назад обнаружил, что мой замечательный двухмегабайтный .bash_history сократился до 24k.
Ничего не понял, вынял из бекапа и забыл.

Потом опять. И опять.
С трудом нащупал механизм: в Dolphin вылезающий по F4 терминал время от времени не подцеплял .bashrc.
Когда он закрывался, то обрезал историю до дефолтного объёма.

Нашёлся и баг: https://bugs.kde.org/show_bug.cgi?id=407990

Только, похоже, неважно была ли восстановлена сессия Dolphin сразу с терминалом.
Восстановленный dolphin забывает прочитать .bashrc даже если ткнуть F4 вручную.
Судя по каментам, в более свежем чем у меня Dolphin есть чекбокс «Show on startup: Folders, tabs and window state from last time», который будет триггерить баг постоянно, даже без session restore.

Workaround: снять флажок, если есть, перезапустить все инстансы dolphin прямо сейчас (на случай, если какой-то из них был восстановлен менеджером) и заблеклистить его в менеджере сессий вашего DE.

 , , ,

aidaho
()

BFQ не очень хорош для многих SSD

Public Service Announcement:

Случайно обнаружил, что bfq на многих ssd сводит производительность к однопоточной.
На nvme и sata Samsung’ах всё в порядке, и пропускная способность bfq растёт с количеством одновременных запросов.
А на ADATA и Transcend вот так:

    Device Model:     TS256GMTS400S
    Serial Number:    0F109200E32506200140
    Firmware Version: P1225CH4
    ATA Version is:   ACS-2 (minor revision not indicated)
    SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
    Timing O_DIRECT disk reads: 1472 MB in  3.00 seconds = 489.96 MB/sec

    /dev/sda, 256.06 GB, 1 threads:
     512   B blocks: 11361.3 IO/s,   5.5 MiB/s ( 46.5 Mbit/s)
       1 KiB blocks: 7762.1 IO/s,   7.6 MiB/s ( 63.6 Mbit/s)
       2 KiB blocks: 4545.7 IO/s,   8.9 MiB/s ( 74.5 Mbit/s)
       4 KiB blocks: 2476.4 IO/s,   9.7 MiB/s ( 81.1 Mbit/s)
       8 KiB blocks: 2483.9 IO/s,  19.4 MiB/s (162.8 Mbit/s)
      16 KiB blocks: 2271.1 IO/s,  35.5 MiB/s (297.7 Mbit/s)
      32 KiB blocks: 1941.6 IO/s,  60.7 MiB/s (509.0 Mbit/s)
      64 KiB blocks: 1360.1 IO/s,  85.0 MiB/s (713.1 Mbit/s)
     128 KiB blocks:  968.5 IO/s, 121.1 MiB/s (  1.0 Gbit/s)

    /dev/sda, 256.06 GB, 4 threads:
     512   B blocks: 12958.1 IO/s,   6.3 MiB/s ( 53.1 Mbit/s)
       1 KiB blocks: 8832.4 IO/s,   8.6 MiB/s ( 72.4 Mbit/s)
       2 KiB blocks: 4945.6 IO/s,   9.7 MiB/s ( 81.0 Mbit/s)
       4 KiB blocks: 2598.6 IO/s,  10.2 MiB/s ( 85.2 Mbit/s)
       8 KiB blocks: 2553.3 IO/s,  19.9 MiB/s (167.3 Mbit/s)
      16 KiB blocks: 2410.9 IO/s,  37.7 MiB/s (316.0 Mbit/s)
      32 KiB blocks: 2089.0 IO/s,  65.3 MiB/s (547.6 Mbit/s)
      64 KiB blocks: 1463.4 IO/s,  91.5 MiB/s (767.2 Mbit/s)
     128 KiB blocks: 1056.8 IO/s, 132.1 MiB/s (  1.1 Gbit/s)

Этот же Transcend, но с mq-deadline:

/dev/sda, 256.06 GB, 4 threads:
 512   B blocks: 42803.6 IO/s,  20.9 MiB/s (175.3 Mbit/s)
   1 KiB blocks: 34526.3 IO/s,  33.7 MiB/s (282.8 Mbit/s)
   2 KiB blocks: 24795.4 IO/s,  48.4 MiB/s (406.2 Mbit/s)
   4 KiB blocks: 15848.5 IO/s,  61.9 MiB/s (519.3 Mbit/s)
   8 KiB blocks: 15403.9 IO/s, 120.3 MiB/s (  1.0 Gbit/s)
  16 KiB blocks: 9705.9 IO/s, 151.7 MiB/s (  1.3 Gbit/s)
  32 KiB blocks: 5583.4 IO/s, 174.5 MiB/s (  1.5 Gbit/s)
  64 KiB blocks: 2967.9 IO/s, 185.5 MiB/s (  1.6 Gbit/s)
 128 KiB blocks: 1666.6 IO/s, 208.3 MiB/s (  1.7 Gbit/s)

Если у вас не Самсунг, то bfq лучше не использовать.

P.S. Ещё едет терабайтный WD Blue, дополню позже.
P.P.S. Linux lin 5.10.0-0.bpo.5-amd64 #1 SMP Debian 5.10.24-1~bpo10+1 (2021-03-29) x86_64 GNU/Linux

 , , mq-deadline,

aidaho
()

Cкорость произвольного доступа SATA SSD в зависимости от контроллера

Что SSD в разных хостах показывают неодинаковые скорости, это не новость, но такой разброс вижу впервые:

Thinkpad t450s

    Device Model:     SAMSUNG MZ7TE256HMHP-000L7
    Serial Number:    S1K7NWAGA01529
    LU WWN Device Id: 5 002538 844584d30
    Firmware Version: EXT0AL6Q
    ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
    SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
    Timing O_DIRECT disk reads: 1488 MB in  3.00 seconds = 495.84 MB/sec

    /dev/sda, 256.06 GB, 1 threads:
    512   B blocks: 20956.7 IO/s,  10.2 MiB/s ( 85.8 Mbit/s)
      1 KiB blocks: 18110.7 IO/s,  17.7 MiB/s (148.4 Mbit/s)
      2 KiB blocks: 13572.3 IO/s,  26.5 MiB/s (222.4 Mbit/s)
      4 KiB blocks: 8874.2 IO/s,  34.7 MiB/s (290.8 Mbit/s)
      8 KiB blocks: 8849.1 IO/s,  69.1 MiB/s (579.9 Mbit/s)
     16 KiB blocks: 6488.4 IO/s, 101.4 MiB/s (850.4 Mbit/s)
     32 KiB blocks: 4598.8 IO/s, 143.7 MiB/s (  1.2 Gbit/s)
     64 KiB blocks: 2809.5 IO/s, 175.6 MiB/s (  1.5 Gbit/s)
    128 KiB blocks: 1445.4 IO/s, 180.7 MiB/s (  1.5 Gbit/s)

    /dev/sda, 256.06 GB, 4 threads:
    512   B blocks: 58264.5 IO/s,  28.4 MiB/s (238.7 Mbit/s)
      1 KiB blocks: 46937.2 IO/s,  45.8 MiB/s (384.5 Mbit/s)
      2 KiB blocks: 33127.1 IO/s,  64.7 MiB/s (542.8 Mbit/s)
      4 KiB blocks: 21139.8 IO/s,  82.6 MiB/s (692.7 Mbit/s)
      8 KiB blocks: 20574.7 IO/s, 160.7 MiB/s (  1.3 Gbit/s)
     16 KiB blocks: 13466.9 IO/s, 210.4 MiB/s (  1.8 Gbit/s)
     32 KiB blocks: 7808.0 IO/s, 244.0 MiB/s (  2.0 Gbit/s)
     64 KiB blocks: 4108.0 IO/s, 256.8 MiB/s (  2.2 Gbit/s)
    128 KiB blocks: 2210.3 IO/s, 276.3 MiB/s (  2.3 Gbit/s)

    /dev/sda, 256.06 GB, 32 threads:
    512   B blocks: 90390.5 IO/s,  44.1 MiB/s (370.2 Mbit/s)
      1 KiB blocks: 70784.4 IO/s,  69.1 MiB/s (579.9 Mbit/s)
      2 KiB blocks: 45820.1 IO/s,  89.5 MiB/s (750.7 Mbit/s)
      4 KiB blocks: 26741.4 IO/s, 104.5 MiB/s (876.3 Mbit/s)
      8 KiB blocks: 26011.2 IO/s, 203.2 MiB/s (  1.7 Gbit/s)
     16 KiB blocks: 15255.7 IO/s, 238.4 MiB/s (  2.0 Gbit/s)
     32 KiB blocks: 8354.5 IO/s, 261.1 MiB/s (  2.2 Gbit/s)
     64 KiB blocks: 4412.8 IO/s, 275.8 MiB/s (  2.3 Gbit/s)
    128 KiB blocks: 2252.4 IO/s, 281.6 MiB/s (  2.4 Gbit/s)

Thinkpad x220

    Device Model:     SAMSUNG MZ7TE256HMHP-000L7
    Serial Number:    S1K7NWAGA01529
    LU WWN Device Id: 5 002538 844584d30
    Firmware Version: EXT0AL6Q
    ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
    SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
    Timing O_DIRECT disk reads: 1486 MB in  3.00 seconds = 494.79 MB/sec

    /dev/sda, 256.06 GB, 1 threads:
     512   B blocks: 2199.6 IO/s,   1.1 MiB/s (  9.0 Mbit/s)
       1 KiB blocks: 1640.3 IO/s,   1.6 MiB/s ( 13.4 Mbit/s)
       2 KiB blocks: 1410.6 IO/s,   2.8 MiB/s ( 23.1 Mbit/s)
       4 KiB blocks: 1075.8 IO/s,   4.2 MiB/s ( 35.3 Mbit/s)
       8 KiB blocks:  961.0 IO/s,   7.5 MiB/s ( 63.0 Mbit/s)
      16 KiB blocks:  784.6 IO/s,  12.3 MiB/s (102.8 Mbit/s)
      32 KiB blocks:  444.2 IO/s,  13.9 MiB/s (116.4 Mbit/s)
      64 KiB blocks:  328.0 IO/s,  20.5 MiB/s (172.0 Mbit/s)
     128 KiB blocks:  168.6 IO/s,  21.1 MiB/s (176.8 Mbit/s)

    /dev/sda, 256.06 GB, 4 threads:
     512   B blocks: 3660.5 IO/s,   1.8 MiB/s ( 15.0 Mbit/s)
       1 KiB blocks: 3176.7 IO/s,   3.1 MiB/s ( 26.0 Mbit/s)
       2 KiB blocks: 2250.6 IO/s,   4.4 MiB/s ( 36.9 Mbit/s)
       4 KiB blocks: 1343.1 IO/s,   5.2 MiB/s ( 44.0 Mbit/s)
       8 KiB blocks: 1356.3 IO/s,  10.6 MiB/s ( 88.9 Mbit/s)
      16 KiB blocks:  901.9 IO/s,  14.1 MiB/s (118.2 Mbit/s)
      32 KiB blocks:  535.0 IO/s,  16.7 MiB/s (140.2 Mbit/s)
      64 KiB blocks:  346.1 IO/s,  21.6 MiB/s (181.4 Mbit/s)
     128 KiB blocks:  158.5 IO/s,  19.8 MiB/s (166.2 Mbit/s)

    /dev/sda, 256.06 GB, 32 threads:
     512   B blocks: 3820.4 IO/s,   1.9 MiB/s ( 15.6 Mbit/s)
       1 KiB blocks: 3163.6 IO/s,   3.1 MiB/s ( 25.9 Mbit/s)
       2 KiB blocks: 2339.8 IO/s,   4.6 MiB/s ( 38.3 Mbit/s)
       4 KiB blocks: 1514.5 IO/s,   5.9 MiB/s ( 49.6 Mbit/s)
       8 KiB blocks: 1419.6 IO/s,  11.1 MiB/s ( 93.0 Mbit/s)
      16 KiB blocks:  949.6 IO/s,  14.8 MiB/s (124.5 Mbit/s)
      32 KiB blocks:  749.3 IO/s,  23.4 MiB/s (196.4 Mbit/s)
      64 KiB blocks:  402.5 IO/s,  25.2 MiB/s (211.0 Mbit/s)
     128 KiB blocks:  179.8 IO/s,  22.5 MiB/s (188.6 Mbit/s)

У оригинального SSD x220 наконец закончились резервные сектора и появился первый бед, затолкал в него родной диск из t450s.
В остальном идентично всё: ядра, ос.

Какие будут версии?

TL;DR: проверяйте работоспособность discard в своём i/o стеке
А то со временем диск может превратиться в улитку.

 , thinkpad t450s,

aidaho
()

MuQSS, liquorix и ренессанс linux десктопа

Год или два назад, хотел решить проблему дёрганного UI в linux.
Проявлений у неё много, но простейший кейс, это однопоточный процесс, заставляющий дёргаться всё остальное на четырёхядерном железе.
Микрофризы на разных программах разной силы. Скажем, chromium более чувствителен, чем firefix. Но даже в emacs они порой ощутимы.
Перепробовал тогда всё: приоритеты, cgroups, тюнинг CFQ, пересборка debian stable без tickless и с 1000hz.

Всё впустую. И в сумме, и по отдельности.
Да, cgroups вполне успешно душит общее использование CPU низкоприоритетной группой, но когда надо поскроллить в хромиуме, в группе гораздо с гораздо более высокими cpus shares, лаги никуда не деваются.

Не люблю наколенные поделки, но раз в прошлом ничего не получилось, попробовал стороннее ядро http://https://liquorix.net
Честно говоря, немного шокирован результатами. Моя конфигурация cgroups там не работает, только скрипт повышающий приоритет декстоп-ориентированым процессам, но на этом с ара-тюнингом с моей стороны всё.

Так вот: я вообще не могу навскидку понять, завершилась моя фоновая однопоточная числодробилка, или нет.
Другой типичный юзкейс: проявка raw в rawtherapee, пока в picture-in-picture фаерфокс играет что-то с ютуба.
На стоковом ядре, или из бекпортов, видео жёстко лагало и периодически просто фризилось на несколько секунд, понижение приоритета rawtherapee не помогало.
С ядром liquorix и rawtherapee с nice 10 вижу, как периодически выпадают кадры из видео, когда rawtherapee пытается всё процессорное время сожрать, но общая плавность вполне сохраняется.
nice начинает наконец реально работать с точки зрения отзывчивости. Долгоиграющий многопоточный пожиратель cpu с nice 19 не то чтобы совсем уж незаметен, но доставляет меньше проблем.

Из совсем неожиданных эффектов: очень быстро переключаются рабочие столы. Редко что-то завершаю, от того у меня полно программ и окон, и почему-то на стоковом ядре, даже без нагрузки, нужно немного времени чтобы всё нарисовать.
Казалось, это норма. Оказывается нет.

Сижу с этим ядром на одной из машин уже месяц, пока проблем не было.
Работают ли числодробилки медленнее? Не знаю. Я бы не огорчился и от 20% пенальти по общему runtime.
Из нехорошего: там ещё кучи каких-то патчей, решающих проблемы, которых у меня нет. Стрёмненько.
Ядра пекутся как пирожки, а не раз в вечность. Тоже стрёмненько.
Нет поддержки x86.
Пока из недостатков вроде всё.

TL;DR: MuQSS делает всё, о чём мы мечтали, и без ручного тюнинга.

 , ,

aidaho
()

Кроссплатформенный Android/Windows/Linux стелс-троян

Arbitrium is a cross-platform is a remote access trojan (RAT), Fully UnDetectable (FUD), It allows you to control Android, Windows and Linux and doesn’t require any firewall exceptions or port forwarding.

Интересная заявка, правда?
Ещё и с исходниками на гитхабе: https://github.com/BenChaliah/Arbitrium-RAT

Чёрт дёрнул пойти посмотреть, как же работает этот state-of-the-art код.

Оказывается, неуловимый стелс-троян под linux зависит от python, а таинственный бинарник toolbox это динамически собранный netcat под x86-64.
Совсем-совсем необнаружимый. Разве что по луже стелс-краски, в которой он сидит.

Обычно обсуждают то, как бесконечно некомпетентен IT-персонал компаний, но, оказывается, жизнь не пощадила и пентестеров.

 , ,

aidaho
()

PSA: Не покупайте ST5000LM000 (5Тб 2.5 карманы)

Первый помер летом.
Вчера во время btrfs scrub отдал концы второй.
C третьим ближайшие пару суток будет разговаривать badblocks методом недеструктивной перезаписи.

Скорее всего, кончина близка:

root@optiplex:/home/aidaho# smartctl -a /dev/sda    
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-5.9.0-15.1-liquorix-amd64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 2.5 5400
Device Model:     ST5000LM000-2AN170
Serial Number:    WCJ0J7GM
LU WWN Device Id: 5 000c50 0ac7558a8
Firmware Version: 0001
User Capacity:    5,000,981,078,016 bytes [5.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5526 rpm
Form Factor:      2.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s
Local Time is:    Thu Dec 24 18:43:06 2020 EET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      ( 117) The previous self-test completed having
                                        the read element of the test failed.
Total time to complete Offline 
data collection:                (    0) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 821) minutes.
Conveyance self-test routine
recommended polling time:        (   2) minutes.
SCT capabilities:              (0x30a5) SCT Status supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   084   064   006    Pre-fail  Always       -       235374112
  3 Spin_Up_Time            0x0003   100   099   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   085   085   020    Old_age   Always       -       15658
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   078   060   045    Pre-fail  Always       -       56361906
  9 Power_On_Hours          0x0032   075   075   000    Old_age   Always       -       22257 (46 65 0)
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       41
183 SATA_Downshift_Count    0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   099   000    Old_age   Always       -       4295032858
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   053   049   040    Old_age   Always       -       47 (Min/Max 23/48)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   094   094   000    Old_age   Always       -       12624
193 Load_Cycle_Count        0x0032   086   086   000    Old_age   Always       -       29144
194 Temperature_Celsius     0x0022   047   051   000    Old_age   Always       -       47 (0 20 0 0 0)
195 Hardware_ECC_Recovered  0x001a   084   064   000    Old_age   Always       -       235374112
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       8
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       8
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       463 (84 195 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       27260027568
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       18480454058
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       50%     22247         -
# 2  Short offline       Completed without error       00%     22158         -
# 3  Short offline       Interrupted (host reset)      00%     20049         -
# 4  Extended offline    Aborted by host               90%     16191         -
# 5  Extended offline    Interrupted (host reset)      00%     16180         -
# 6  Extended offline    Interrupted (host reset)      00%     16180         -
# 7  Short offline       Completed without error       00%     16180         -
# 8  Short offline       Interrupted (host reset)      00%      9731         -
# 9  Short offline       Interrupted (host reset)      00%      9371         -

USB карманы разных производителей, но внутри одно и то же.
Сейчас диск вынят из кармана и стоит в ПК.

Рекомендую проходить мимо любого 5Тб 2.5" накопителя.

 , click-of-death, , ,

aidaho
()

Перестали монтироваться LUKS контейнеры

Среда: время опять чинить систему, поломанную systemd.

История простая: перезагрузился, перестали монтироваться по клику в Dolphin LUKS контейнеры.
Подкапотный udisksctl наглухо зависает.

Оказыватеся, cryptsetup никогда не завершается:

root@optiplex:/home/aidaho# cryptsetup luksOpen /dev/disk/by-id/usb-PHD_3.0_Silicon-Power_18008895038160000017-0\:0 armor --debug
# cryptsetup 2.1.0 processing "cryptsetup luksOpen /dev/disk/by-id/usb-PHD_3.0_Silicon-Power_18008895038160000017-0:0 armor --debug"
# Running command open.
# Locking memory.
# Installing SIGINT/SIGTERM handler.
# Unblocking interruption on signal.
# Allocating context for crypt device /dev/disk/by-id/usb-PHD_3.0_Silicon-Power_18008895038160000017-0:0.
# Trying to open and read device /dev/disk/by-id/usb-PHD_3.0_Silicon-Power_18008895038160000017-0:0 with direct-io.
# Initialising device-mapper backend library.
# Trying to load any crypt type from device /dev/disk/by-id/usb-PHD_3.0_Silicon-Power_18008895038160000017-0:0.
# Crypto backend (OpenSSL 1.1.1d  10 Sep 2019) initialized in cryptsetup library version 2.1.0.
# Detected kernel Linux 4.19.0-12-amd64 x86_64.
# PBKDF pbkdf2, hash sha256, time_ms 2000 (iterations 0), max_memory_kb 0, parallel_threads 0.
# Reading LUKS header of size 1024 from device /dev/disk/by-id/usb-PHD_3.0_Silicon-Power_18008895038160000017-0:0
# Key length 32, device size 9767541168 sectors, header size 2050 sectors.
# Activating volume armor using token -1.
# Interactive passphrase entry requested.
Enter passphrase for /dev/disk/by-id/usb-PHD_3.0_Silicon-Power_18008895038160000017-0:0:
# Activating volume armor [keyslot -1] using passphrase.
# dm version   [ opencount flush ]   [16384] (*1)
# dm versions   [ opencount flush ]   [16384] (*1)
# Detected dm-ioctl version 4.39.0.
# Detected dm-crypt version 1.18.1.
# Device-mapper backend running with UDEV support enabled.
# dm status armor  [ opencount noflush ]   [16384] (*1)
# Trying to open key slot 0 [ACTIVE_LAST].
# Reading key slot 0 area.
# Using userspace crypto wrapper to access keyslot area.
# dm versions   [ opencount flush ]   [16384] (*1)
# dm status armor  [ opencount noflush ]   [16384] (*1)
# Calculated device size is 9767538096 sectors (RW), offset 3072.
# DM-UUID is CRYPT-LUKS1-94bd2ae6fb3b4098802fda26255ed489-armor
# Udev cookie 0xd4d875e (semid 360450) created
# Udev cookie 0xd4d875e (semid 360450) incremented to 1
# Udev cookie 0xd4d875e (semid 360450) incremented to 2
# Udev cookie 0xd4d875e (semid 360450) assigned to CREATE task(0) with flags DISABLE_LIBRARY_FALLBACK         (0x20)
# dm create armor CRYPT-LUKS1-94bd2ae6fb3b4098802fda26255ed489-armor [ opencount flush ]   [16384] (*1)
# dm reload armor  [ opencount flush securedata ]   [16384] (*1)
# dm resume armor  [ opencount flush securedata ]   [16384] (*1)
# armor: Stacking NODE_ADD (253,1) 0:6 0660 [trust_udev]
# armor: Stacking NODE_READ_AHEAD 256 (flags=1)
# Udev cookie 0xd4d875e (semid 360450) decremented to 1
# Udev cookie 0xd4d875e (semid 360450) waiting for zero

Нужное правило udev вроде на месте:

root@optiplex:/home/aidaho# cat /lib/udev/rules.d/95-dm-notify.rules
# Copyright (C) 2009 Red Hat, Inc. All rights reserved.
#
# This file is part of LVM2.

# Udev rules for device-mapper devices.
#
# These rules are responsible for sending a notification to a process
# waiting for completion of udev rules. The process is identified by
# a cookie value sent within "change" and "remove" events (the cookie
# value is set before by that process for every action requested).

ENV{DM_COOKIE}=="?*", RUN+="/sbin/dmsetup udevcomplete $env{DM_COOKIE}"

И systemd рапортует, что выполнил его:

root@optiplex:/home/aidaho# journalctl -f | grep udev
Nov 18 09:37:43 optiplex systemd-udevd[14601]: sdb: Inotify event: 8 for /dev/sdb
Nov 18 09:37:43 optiplex systemd-udevd[14601]: Device '/dev/sdb' is closed, synthesising 'change'
Nov 18 09:37:43 optiplex systemd-udevd[14601]: 253:1: Device (SEQNUM=4776, ACTION=add) is queued
Nov 18 09:37:43 optiplex systemd-udevd[14601]: Validate module index
Nov 18 09:37:43 optiplex systemd-udevd[14601]: Check if link configuration needs reloading.
Nov 18 09:37:43 optiplex systemd-udevd[14601]: Successfully forked off 'n/a' as PID 13360.
Nov 18 09:37:43 optiplex systemd-udevd[14601]: 253:1: Worker [13360] is forked for processing SEQNUM=4776.
Nov 18 09:37:43 optiplex systemd-udevd[14601]: dm-1: Device (SEQNUM=4777, ACTION=add) is queued
Nov 18 09:37:43 optiplex systemd-udevd[14601]: Successfully forked off 'n/a' as PID 13361.
Nov 18 09:37:43 optiplex systemd-udevd[14601]: dm-1: Worker [13361] is forked for processing SEQNUM=4777.
Nov 18 09:37:43 optiplex systemd-udevd[13360]: 253:1: Processing device (SEQNUM=4776, ACTION=add)
Nov 18 09:37:43 optiplex systemd-udevd[14601]: sdb: Device (SEQNUM=4778, ACTION=change) is queued
Nov 18 09:37:43 optiplex systemd-udevd[13361]: dm-1: Processing device (SEQNUM=4777, ACTION=add)
Nov 18 09:37:43 optiplex systemd-udevd[14601]: Successfully forked off 'n/a' as PID 13362.
Nov 18 09:37:43 optiplex systemd-udevd[13360]: 253:1: Device (SEQNUM=4776, ACTION=add) processed
Nov 18 09:37:43 optiplex systemd-udevd[14601]: sdb: Worker [13362] is forked for processing SEQNUM=4778.
Nov 18 09:37:43 optiplex systemd-udevd[13360]: 253:1: sd-device-monitor: Passed 140 byte to netlink monitor
Nov 18 09:37:43 optiplex systemd-udevd[13361]: dm-1: GROUP 6 /lib/udev/rules.d/50-udev-default.rules:59
Nov 18 09:37:43 optiplex systemd-udevd[13361]: dm-1: Handling device node '/dev/dm-1', devnum=b253:1, mode=0660, uid=0, gid=6
Nov 18 09:37:43 optiplex systemd-udevd[13361]: dm-1: Setting permissions /dev/dm-1, 060660, uid=0, gid=6
Nov 18 09:37:43 optiplex systemd-udevd[13361]: dm-1: Creating symlink '/dev/block/253:1' to '../dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13361]: dm-1: sd-device: Created db file '/run/udev/data/b253:1' for '/devices/virtual/block/dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13361]: dm-1: Device (SEQNUM=4777, ACTION=add) processed
Nov 18 09:37:43 optiplex systemd-udevd[13361]: dm-1: sd-device-monitor: Passed 331 byte to netlink monitor
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Processing device (SEQNUM=4778, ACTION=change)
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Removing watch
Nov 18 09:37:43 optiplex systemd-udevd[14601]: dm-1: Device (SEQNUM=4779, ACTION=change) is queued
Nov 18 09:37:43 optiplex systemd-udevd[14601]: dm-1: sd-device-monitor: Passed 213 byte to netlink monitor
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: IMPORT 'ata_id --export /dev/sdb' /lib/udev/rules.d/60-persistent-storage.rules:46
Nov 18 09:37:43 optiplex systemd-udevd[13362]: Starting 'ata_id --export /dev/sdb'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: Successfully forked off '(spawn)' as PID 13363.
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Processing device (SEQNUM=4779, ACTION=change)
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: IMPORT '/sbin/dmsetup udevflags 6326110' /lib/udev/rules.d/55-dm.rules:52
Nov 18 09:37:43 optiplex systemd-udevd[13360]: Starting '/sbin/dmsetup udevflags 6326110'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: Successfully forked off '(spawn)' as PID 13364.
Nov 18 09:37:43 optiplex systemd-udevd[13360]: '/sbin/dmsetup udevflags 6326110'(out) 'DM_UDEV_DISABLE_LIBRARY_FALLBACK_FLAG='1''
Nov 18 09:37:43 optiplex systemd-udevd[13360]: '/sbin/dmsetup udevflags 6326110'(out) 'DM_UDEV_PRIMARY_SOURCE_FLAG='1''
Nov 18 09:37:43 optiplex systemd-udevd[13360]: Process '/sbin/dmsetup udevflags 6326110' succeeded.
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: LINK 'mapper/armor' /lib/udev/rules.d/55-dm.rules:136
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: LINK 'disk/by-id/dm-name-armor' /lib/udev/rules.d/60-persistent-storage-dm.rules:17
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: LINK 'disk/by-id/dm-uuid-CRYPT-LUKS1-94bd2ae6fb3b4098802fda26255ed489-armor' /lib/udev/rules.d/60-persistent-storage-dm.rules:18
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: IMPORT builtin 'blkid' /lib/udev/rules.d/60-persistent-storage-dm.rules:23
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Probe /dev/dm-1 with raid and offset=0
Nov 18 09:37:43 optiplex systemd-udevd[13362]: Process 'ata_id --export /dev/sdb' failed with exit code 2.
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: IMPORT builtin 'usb_id' /lib/udev/rules.d/60-persistent-storage.rules:49
Nov 18 09:37:43 optiplex systemd-udevd[13362]: 2-3.1.1:1.0: if_class:8 protocol:6
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: LINK 'disk/by-id/usb-PHD_3.0_Silicon-Power_18008895038160000017-0:0' /lib/udev/rules.d/60-persistent-storage.rules:54
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: IMPORT builtin 'path_id' /lib/udev/rules.d/60-persistent-storage.rules:78
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: LINK 'disk/by-path/pci-0000:00:14.0-usb-0:3.1.1:1.0-scsi-0:0:0:0' /lib/udev/rules.d/60-persistent-storage.rules:80
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: IMPORT builtin 'blkid' /lib/udev/rules.d/60-persistent-storage.rules:95
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Probe /dev/sdb with raid and offset=0
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: LINK 'disk/by-uuid/94bd2ae6-fb3b-4098-802f-da26255ed489' /lib/udev/rules.d/60-persistent-storage.rules:98
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: ATTR '/sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1.1/2-3.1.1:1.0/host4/target4:0:0/4:0:0:0/block/sdb/queue/scheduler' writing 'bfq' /etc/udev/rules.d/60-scheduler.rules:2
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: RUN '/etc/intelpwm' /etc/udev/rules.d/99-intel-pwm.rules:2
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Handling device node '/dev/sdb', devnum=b8:16, mode=0600, uid=0, gid=0
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Preserve already existing symlink '/dev/block/8:16' to '../sdb'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Found 'b8:16' claiming '/run/udev/links/\x2fdisk\x2fby-path\x2fpci-0000:00:14.0-usb-0:3.1.1:1.0-scsi-0:0:0:0'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Preserve already existing symlink '/dev/disk/by-path/pci-0000:00:14.0-usb-0:3.1.1:1.0-scsi-0:0:0:0' to '../../sdb'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Found 'b8:16' claiming '/run/udev/links/\x2fdisk\x2fby-uuid\x2f94bd2ae6-fb3b-4098-802f-da26255ed489'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Preserve already existing symlink '/dev/disk/by-uuid/94bd2ae6-fb3b-4098-802f-da26255ed489' to '../../sdb'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Found 'b8:16' claiming '/run/udev/links/\x2fdisk\x2fby-id\x2fusb-PHD_3.0_Silicon-Power_18008895038160000017-0:0'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Preserve already existing symlink '/dev/disk/by-id/usb-PHD_3.0_Silicon-Power_18008895038160000017-0:0' to '../../sdb'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: sd-device: Created db file '/run/udev/data/b8:16' for '/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1.1/2-3.1.1:1.0/host4/target4:0:0/4:0:0:0/block/sdb'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: Starting '/etc/intelpwm'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: Successfully forked off '(spawn)' as PID 13365.
Nov 18 09:37:43 optiplex systemd-udevd[13362]: Process '/etc/intelpwm' failed with exit code 1.
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Adding watch on '/dev/sdb'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: sd-device: Created db file '/run/udev/data/b8:16' for '/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1.1/2-3.1.1:1.0/host4/target4:0:0/4:0:0:0/block/sdb'
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: Device (SEQNUM=4778, ACTION=change) processed
Nov 18 09:37:43 optiplex systemd-udevd[13362]: sdb: sd-device-monitor: Passed 1132 byte to netlink monitor
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: LINK 'disk/by-uuid/8b3064bc-ae9d-49c5-8d85-2d68d15d3f69' /lib/udev/rules.d/60-persistent-storage-dm.rules:25
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: LINK 'disk/by-label/armor' /lib/udev/rules.d/60-persistent-storage-dm.rules:26
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: RUN 'btrfs ready /dev/mapper/$env{DM_NAME}' /lib/udev/rules.d/64-btrfs-dm.rules:8
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: IMPORT builtin 'btrfs' /lib/udev/rules.d/64-btrfs.rules:9
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: RUN '/bin/udevadm trigger -s block -p ID_BTRFS_READY=0' /lib/udev/rules.d/64-btrfs.rules:15
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: RUN '/sbin/dmsetup udevcomplete $env{DM_COOKIE}' /lib/udev/rules.d/95-dm-notify.rules:12
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: RUN '/etc/intelpwm' /etc/udev/rules.d/99-intel-pwm.rules:2
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Handling device node '/dev/dm-1', devnum=b253:1, mode=0600, uid=0, gid=0
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Preserve already existing symlink '/dev/block/253:1' to '../dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Creating symlink '/dev/disk/by-id/dm-name-armor' to '../../dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Creating symlink '/dev/disk/by-uuid/8b3064bc-ae9d-49c5-8d85-2d68d15d3f69' to '../../dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Creating symlink '/dev/mapper/armor' to '../dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Creating symlink '/dev/disk/by-label/armor' to '../../dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Creating symlink '/dev/disk/by-id/dm-uuid-CRYPT-LUKS1-94bd2ae6fb3b4098802fda26255ed489-armor' to '../../dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: sd-device: Created db file '/run/udev/data/b253:1' for '/devices/virtual/block/dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: Starting '/etc/intelpwm'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: Successfully forked off '(spawn)' as PID 13366.
Nov 18 09:37:43 optiplex systemd-udevd[13360]: Process '/etc/intelpwm' failed with exit code 1.
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Adding watch on '/dev/dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: sd-device: Created db file '/run/udev/data/b253:1' for '/devices/virtual/block/dm-1'
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: Device (SEQNUM=4779, ACTION=change) processed
Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: sd-device-monitor: Passed 955 byte to netlink monitor
Nov 18 09:37:46 optiplex systemd-udevd[14601]: Cleanup idle workers
Nov 18 09:37:46 optiplex systemd-udevd[13361]: Unload module index
Nov 18 09:37:46 optiplex systemd-udevd[13362]: Unload module index
Nov 18 09:37:46 optiplex systemd-udevd[13360]: Unload module index
Nov 18 09:37:46 optiplex systemd-udevd[13361]: Unloaded link configuration context.
Nov 18 09:37:46 optiplex systemd-udevd[13362]: Unloaded link configuration context.
Nov 18 09:37:46 optiplex systemd-udevd[13360]: Unloaded link configuration context.
Nov 18 09:37:46 optiplex systemd-udevd[14601]: Worker [13360] exited
Nov 18 09:37:46 optiplex systemd-udevd[14601]: Worker [13361] exited
Nov 18 09:37:46 optiplex systemd-udevd[14601]: Worker [13362] exited

(всё внимание на Nov 18 09:37:43 optiplex systemd-udevd[13360]: dm-1: RUN '/sbin/dmsetup udevcomplete $env{DM_COOKIE}' /lib/udev/rules.d/95-dm-notify.rules:12)

Но если вручную скомандовать dmsetup udevcomplete 0xd4d875e, то cryptsetup тут же отвисает:

# Udev cookie 0xd4d875e (semid 360450) destroyed
# armor: Skipping NODE_ADD (253,1) 0:6 0660 [trust_udev]
# armor: Processing NODE_READ_AHEAD 256 (flags=1)
# armor (253:1): read ahead is 256
# armor: retaining kernel read ahead of 256 (requested 256)
Key slot 0 unlocked.
# Releasing crypt device /dev/disk/by-id/usb-PHD_3.0_Silicon-Power_18008895038160000017-0:0 context.
# Releasing device-mapper backend.
# Unlocking memory.
Command successful.

Вроде додебажил проблему до сути, но дальше не знаю что делать.
systemd-udevd рапортует что всё делает, но на самом деле нет.

 , , , systemd-udevd

aidaho
()

Механических клавиатур тред

Механика вечная, говорили они. Миллионы нажатий, говорили они.

После трёх лет работы, Gateron Brown стали пропускать нажатия.
Похоже на какое-то засорение, т.к. через день-два восстанавливается нормальная работа.
Три или четыре свича так за последние два месяца.

Выглядит как отсутствие реакции, пока не вгонишь клавишу до дна. И тогда может тоже не сработать. Пробовал дуть, как-то не очень помогает. Вроде и условия хорошие по чистоте: клава задвигается в стол. Но всё равно вот так.

Чтобы было что-то, пока думаю на что апгрейдиться, побежал в ближайший интернет-магазин и купил не глядя самую дешёвую механику со съёмным кабелем.
Ей оказалась Havit/Volcano TKL. На удивление, бомж-level механики за прошедшее время очень подрос. Свичи не нонейм, а Kailh Blue Low Profile, на кликбарах. Стабы не дребезжат вообще (!), только левый шифт чуть-чуть.

Короткоходные свичи на удивление ок. То есть, смысла то никакого нет, кроме маркетинга для переезжающих с ножничных и ошибочно хотящих короткий ход, но всё равно получилось хорошо. Едут вниз плавно. Срабатывание чётко где клик. Сами клики на вскидку даже чуть приятнее звучат, чем у Cherry: не так резко.

Клавиатура получилась очень низкая, мой красивый деревянный палмрест пока что отправился на отдых, потому что не нужен.

Минусы: пробел немного тяжеловат, дешманские laser-etched капы, которые быстро отполируются, киберкотлетическая подсветка, нет управления плеером.

За ~$50 из локального магаза, это отлично.

Теперь вот думаю, на что переехать. Хотелось бы остаться на Gateron Brown: всё-таки пока они работают, они прекрасны.
Думаю в сторону досок с заменяемыми свичами: можно будет держать пакетик запасных и менять по мере появления глюков.
Из дёшево и сердито вижу GMMK TKL, но ещё один скелет как-то не хочется.

Что скажете?

 ,

aidaho
()

Постмортем BTRFS от рук съехавшего с катушек железа

Топик чисто ознакомительный, даёт некоторое представление об отказоустойчивости btrfs в 2020.

Несколько недель назад был отвал устройств на USB3 хабе моего домашнего сервера. Тогда не придал этому внимания. Как оказалось, бобик начал подыхать. На нём, в числе прочего, внешний USB3 винт.

В какой-то момент в логе начался флуд разнообразных сообщений об ошибках usb-устройств, а примонтированная ФС ушла в астрал:

aidaho@optiplex:~$ la /home/aidaho/.config/calibre/Library/
ls: /home/aidaho/.config/calibre/Library/: Input/output error
ls: /home/aidaho/.config/calibre/Library/.: Input/output error
ls: /home/aidaho/.config/calibre/Library/..: Input/output error
ls: reading directory '/home/aidaho/.config/calibre/Library/': Input/output error
total 16K
drwxrwx--- 1 aidaho aidaho 3.7M Mar  9 14:51 ./
drwxrwxrwx 1 root   root     84 Jun  3  2019 ../

~/.config/calible/Library — это симлинк на btrfs книгохранилище.

Переткнул хаб и попробовал починить:

root@optiplex:/home/aidaho# btrfs check --repair --progress /dev/dm-2
enabling repair mode
Opening filesystem to check...
Checking filesystem on /dev/dm-2
UUID: 39ca2053-7da1-4aa2-ad78-97697235bf06
[1/7] checking root items                      (0:03:06 elapsed, 5236043 items checked)
Fixed 0 roots.
No device size related problem found           (0:01:49 elapsed, 386801 items checked)
[2/7] checking extents                         (0:01:50 elapsed, 386801 items checked)
cache and super generation don't match, space cache will be invalidated
[3/7] checking free space cache                (0:00:00 elapsed)
root 5 inode 2954758 errors 100, file extent discount03 elapsed, 175202 items checked)
Found file extent holes:
        start: 0, len: 1019904
[4/7] checking fs roots                        (0:02:04 elapsed, 175635 items checked)
ERROR: errors found in fs roots
found 2856969207808 bytes used, error(s) found
total csum bytes: 2783138772
total tree bytes: 6337216512
total fs tree bytes: 2888613888
total extent tree bytes: 486735872
btree space waste bytes: 699123598
file data blocks allocated: 2865043968000
 referenced 3103189127168

Повторный пуск даёт тот же вывод:

root@optiplex:/home/aidaho# btrfs check --repair --progress /dev/dm-2
enabling repair mode
Opening filesystem to check...
Checking filesystem on /dev/dm-2
UUID: 39ca2053-7da1-4aa2-ad78-97697235bf06
[1/7] checking root items                      (0:04:00 elapsed, 5236055 items checked)
Fixed 0 roots.
No device size related problem found           (0:01:52 elapsed, 386806 items checked)
[2/7] checking extents                         (0:01:53 elapsed, 386806 items checked)
cache and super generation don't match, space cache will be invalidated
[3/7] checking free space cache                (0:00:00 elapsed)
root 5 inode 2954758 errors 100, file extent discount56 elapsed, 175434 items checked)
Found file extent holes:
        start: 0, len: 1019904
[4/7] checking fs roots                        (0:01:56 elapsed, 175635 items checked)
ERROR: errors found in fs roots
found 2856969289728 bytes used, error(s) found
total csum bytes: 2783138772
total tree bytes: 6337298432
total fs tree bytes: 2888630272
total extent tree bytes: 486768640
btree space waste bytes: 699202955
file data blocks allocated: 2865043968000
 referenced 3103189127168

Итак, на ФС есть ошибки, которые btrfs check не спешит исправлять. Попробуем смонтировать:

[2386028.604438] BTRFS info (device dm-2): disk space caching is enabled
[2386028.604442] BTRFS info (device dm-2): has skinny extents
[2386028.889649] BTRFS info (device dm-2): bdev /dev/mapper/luks-94bd2ae6-fb3b-4098-802f-da26255ed489 errs: wr 10, rd 0, flush 0, corrupt 0, gen 0
[2386031.073168] BTRFS info (device dm-2): checking UUID tree

На удивление, ФС смонтировалась в rw и продолжила работать без каких-то видимых нюансов. Визуально всё на месте и запись работает как положено.

Теперь интересное:

Был запущен btrfs scrub который исправил целую кучу (емнип, около двух сотен) checksum errors. Хотя в USB вроде и есть какая-то коррекция ошибок, но хаб её успешно поборол.

Где-то во время его работы хаб вновь ушёл в астрал и накопитель заработал третий хардварный креш.

Третий заход btrfs check после перетыкания хаба:

root@optiplex:/home/aidaho# btrfs check --repair --progress /dev/dm-2
enabling repair mode
Opening filesystem to check...
Checking filesystem on /dev/dm-2
UUID: 39ca2053-7da1-4aa2-ad78-97697235bf06
parent transid verify failed on 1958979633152 wanted 3776 found 3635 items checked)
parent transid verify failed on 1958979633152 wanted 3776 found 3635
parent transid verify failed on 1958979633152 wanted 3776 found 3635
parent transid verify failed on 1958979633152 wanted 3776 found 3635
Ignoring transid failure
parent transid verify failed on 1958979321856 wanted 3776 found 3635301 items checked)
parent transid verify failed on 1958979321856 wanted 3776 found 3635
parent transid verify failed on 1958979321856 wanted 3776 found 3635
parent transid verify failed on 1958979321856 wanted 3776 found 3635
Ignoring transid failure
parent transid verify failed on 1958979338240 wanted 3776 found 3635
parent transid verify failed on 1958979338240 wanted 3776 found 3635
parent transid verify failed on 1958979338240 wanted 3776 found 3635
parent transid verify failed on 1958979338240 wanted 3776 found 3635
Ignoring transid failure
parent transid verify failed on 1958979371008 wanted 3776 found 3635091 items checked)
parent transid verify failed on 1958979371008 wanted 3776 found 3635
parent transid verify failed on 1958979371008 wanted 3776 found 3635
parent transid verify failed on 1958979371008 wanted 3776 found 3635
Ignoring transid failure
parent transid verify failed on 1958979420160 wanted 3776 found 3635
parent transid verify failed on 1958979420160 wanted 3776 found 3635
parent transid verify failed on 1958979420160 wanted 3776 found 3635
parent transid verify failed on 1958979420160 wanted 3776 found 3635
Ignoring transid failure
parent transid verify failed on 1958979436544 wanted 3776 found 3635213 items checked)
parent transid verify failed on 1958979436544 wanted 3776 found 3635
parent transid verify failed on 1958979436544 wanted 3776 found 3635
parent transid verify failed on 1958979436544 wanted 3776 found 3635
Ignoring transid failure
ERROR: child eb corrupted: parent bytenr=1959335247872 item=71 parent level=1 child level=1
[1/7] checking root items                      (0:00:16 elapsed, 473935 items checked)
ERROR: failed to repair root items: Input/output error

Ну всё: бобик теперь совсем помер. Попробуем смонтировать эти руины:

[  126.775723] BTRFS: device label armor devid 1 transid 3782 /dev/dm-2
[  127.048174] BTRFS info (device dm-2): disk space caching is enabled
[  127.048176] BTRFS info (device dm-2): has skinny extents
[  127.451449] BTRFS info (device dm-2): bdev /dev/mapper/luks-94bd2ae6-fb3b-4098-802f-da26255ed489 errs: wr 10, rd 0, flush 0, corrupt 0, gen 122
[  149.256547] BTRFS error (device dm-2): parent transid verify failed on 1958979633152 wanted 3776 found 3635
[  149.266134] BTRFS error (device dm-2): parent transid verify failed on 1958979633152 wanted 3776 found 3635
[  149.266155] BTRFS: error (device dm-2) in btrfs_run_delayed_refs:2935: errno=-5 IO failure
[  149.266161] BTRFS info (device dm-2): forced readonly
[  149.266165] BTRFS warning (device dm-2): Skipping commit of aborted transaction.
[  149.266168] BTRFS: error (device dm-2) in cleanup_transaction:1860: errno=-5 IO failure
[  149.266202] BTRFS error (device dm-2): commit super ret -5

Неисправная (и уже неисправимая) ФС по прежнему монтируется в RO и файлы доступны. Точно ли доступны? Переткнул винт уже прямо в порт материнки и на ночь поставил копировать всё в /dev/null

На удивление, не скопировался только один видеофайл.

Выводы: ну, это однозначно зачёт.
N лет тому назад был свидетелем тому, как помирающий мост одной материнки поделил на ноль ext3 тем же образом.
Тут не смотря на столько битфлипов всё даже как-то продолжало работать, а когда совсем накрылось, всё равно можно было встать и уйти практически со всеми данными.

Я считаю, флаг nochecksum для btrfs нужно просто запретить, как предложенный врагами народа.

 bitrot, btfrs, ,

aidaho
()

SystemD не сумел выключить машину

Отвалился usb-hub с флешкой воткнутой, и не захотел реиницилизироваться.
Восьмое чувство подсказало, что не стоит удалённо перезагружать машину.

Внезапно, оказалось что я угадал, и systemd был не готов к серверному юзкейсу: https://i.imgur.com/xTBtiVJ.jpg

systemd зомбанул машину: потушил все сервисы, и не выключил.

Лог отключения до последней записи:

Feb 12 08:10:51 optiplex pulseaudio[12272]: XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
Feb 12 08:10:51 optiplex pulseaudio[12272]:       after 12 requests (12 known processed) with 0 events remaining.
Feb 12 08:10:51 optiplex org.kde.kded5[12192]: The X11 connection broke (error 1). Did the X11 server die?
Feb 12 08:10:51 optiplex NetworkManager[860]: ((src/settings/nm-settings-connection.c:361)): assertion '<dropped>' failed
Feb 12 08:10:51 optiplex org.kde.kglobalaccel[12192]: The X11 connection broke (error 1). Did the X11 server die?
Feb 12 08:10:51 optiplex org.kde.kwalletd5[12192]: The X11 connection broke (error 1). Did the X11 server die?
Feb 12 08:10:51 optiplex org.kde.kuiserver[12192]: The X11 connection broke (error 1). Did the X11 server die?
Feb 12 08:10:51 optiplex org.kde.kdeconnect[12192]: The X11 connection broke (error 1). Did the X11 server die?
Feb 12 08:10:51 optiplex org.kde.ActivityManager[12192]: The X11 connection broke (error 1). Did the X11 server die?
Feb 12 08:10:51 optiplex at-spi-bus-launcher[12342]: XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
Feb 12 08:10:51 optiplex at-spi-bus-launcher[12342]:       after 909045 requests (909045 known processed) with 0 events remaining.
Feb 12 08:10:51 optiplex bluetoothd[1406]: Endpoint unregistered: sender=:1.2167 path=/MediaEndpoint/A2DPSource
Feb 12 08:10:51 optiplex bluetoothd[1406]: Endpoint unregistered: sender=:1.2167 path=/MediaEndpoint/A2DPSink
Feb 12 08:10:51 optiplex systemd[12163]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Feb 12 08:10:51 optiplex systemd[12163]: pulseaudio.service: Failed with result 'exit-code'.
Feb 12 08:10:52 optiplex systemd[12163]: pulseaudio.service: Service RestartSec=100ms expired, scheduling restart.
Feb 12 08:10:52 optiplex systemd[12163]: pulseaudio.service: Scheduled restart job, restart counter is at 1.
Feb 12 08:10:52 optiplex systemd[12163]: Stopped Sound Service.
Feb 12 08:10:52 optiplex systemd[12163]: Failed to create compat systemd cgroup /user.slice/user-1000.slice/user@1000.service/pulseaudio.service: Permission denied
Feb 12 08:10:52 optiplex systemd[12163]: Failed to attach 26188 to compat systemd cgroup /user.slice/user-1000.slice/user@1000.service/pulseaudio.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[12163]: Starting Sound Service...
Feb 12 08:10:52 optiplex systemd[26188]: Failed to attach 26188 to compat systemd cgroup /user.slice/user-1000.slice/user@1000.service/pulseaudio.service: No such file or directory
Feb 12 08:10:52 optiplex pulseaudio[26188]: W: [pulseaudio] pid.c: Stale PID file, overwriting.
Feb 12 08:10:52 optiplex NetworkManager[860]: ((src/settings/nm-settings-connection.c:361)): assertion '<dropped>' failed
Feb 12 08:10:52 optiplex systemd[1]: Stopping Authorization Manager...
Feb 12 08:10:52 optiplex systemd[1]: systemd-rfkill.socket: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Closed Load/Save RF Kill Switch Status /dev/rfkill Watch.
Feb 12 08:10:52 optiplex systemd[1]: Stopping Session 1 of user root.
Feb 12 08:10:52 optiplex watchdog[2532]: stopping daemon (5.15)
Feb 12 08:10:52 optiplex systemd[1]: Stopped target Sound Card.
Feb 12 08:10:52 optiplex tincd[31321]: Got TERM signal
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 19753 (pager) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 3311 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex Tor[1921]: Interrupt: exiting cleanly.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 9288 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 9659 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 11616 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 19985 (su) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 19995 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 20081 (tail) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 21139 (tmux: server) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 21140 (htop) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 21142 (su) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 21146 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 21149 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 21152 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 25210 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 28347 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 28734 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12243 (mpd) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 9763 (mysql) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 25182 (wcalc) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12218 (ssh-agent) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12554 (dbus-daemon) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12567 (dbus-daemon) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 13917 (thumbnail.so) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 21144 (watch) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 28624 (watch) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 28858 (cgrulesengd) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 8433 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 26151 (tdeinit) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 24852 (gpg-agent) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 19969 (aptitude) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 30608 (emacs) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 30629 (aspell) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 7311 (jediepcserver) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 15546 (jediepcserver) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 18533 (jediepcserver) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 31963 (jediepcserver) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12706 (jediepcserver) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12707 (jediepcserver) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 19743 (man) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 4547 (adb) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 2136 (bash) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 14846 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 7324 (python2) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 15549 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 18538 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 30012 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 31972 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12680 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12681 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12685 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12712 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12714 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 21121 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 30138 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 30417 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 6190 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 2866 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 22505 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 312 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 25712 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 1896 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 10249 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 18597 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 28332 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 17411 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 8876 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 18673 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 3870 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 12170 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 20356 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 29165 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 5544 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: session-c2.scope: Killing process 19331 (python) with signal SIGTERM.
Feb 12 08:10:52 optiplex systemd[1]: Stopping Session c2 of user aidaho.
Feb 12 08:10:52 optiplex systemd[1]: Stopping Tinc net vaultnet...
Feb 12 08:10:52 optiplex systemd[1]: Stopping Save/Restore Sound Card State...
Feb 12 08:10:52 optiplex systemd[1]: Stopping Daemon for power management...
Feb 12 08:10:52 optiplex systemd[1]: Stopping Daemon for generating UUIDs...
Feb 12 08:10:52 optiplex systemd[1]: Stopping Anonymizing overlay network for TCP...
Feb 12 08:10:52 optiplex systemd[1]: Stopping watchdog daemon...
Feb 12 08:10:52 optiplex systemd[1]: Stopped target Graphical Interface.
Feb 12 08:10:52 optiplex systemd[1]: Stopping Disk Manager...
Feb 12 08:10:52 optiplex systemd[1]: Stopping Trinity Display Manager...
Feb 12 08:10:52 optiplex systemd[1]: Stopping RealtimeKit Scheduling Policy Service...
Feb 12 08:10:52 optiplex bluetoothd[1406]: Terminating
Feb 12 08:10:52 optiplex systemd[1]: Stopped target Bluetooth.
Feb 12 08:10:52 optiplex systemd[1]: Stopping Bluetooth service...
Feb 12 08:10:52 optiplex systemd[1]: Stopped target Timers.
Feb 12 08:10:52 optiplex systemd[1]: systemd-tmpfiles-clean.timer: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Daily Cleanup of Temporary Directories.
Feb 12 08:10:52 optiplex systemd[1]: man-db.timer: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Daily man-db regeneration.
Feb 12 08:10:52 optiplex systemd[1]: apt-daily-upgrade.timer: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Daily apt upgrade and clean activities.
Feb 12 08:10:52 optiplex systemd[1]: anacron.timer: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Trigger anacron every hour.
Feb 12 08:10:52 optiplex systemd[1]: apt-daily.timer: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Daily apt download activities.
Feb 12 08:10:52 optiplex systemd[1]: logrotate.timer: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Daily rotation of log files.
Feb 12 08:10:52 optiplex systemd[1]: Failed to attach 26195 to compat systemd cgroup /system.slice/system-zram\x2dsetup.slice/zram-setup@zram0.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[1]: Stopping Setup zram based device zram0...
Feb 12 08:10:52 optiplex systemd[26195]: Failed to attach 26195 to compat systemd cgroup /system.slice/system-zram\x2dsetup.slice/zram-setup@zram0.service: No such file or directory
Feb 12 08:10:52 optiplex bluetoothd[1406]: Stopping SDP server
Feb 12 08:10:52 optiplex bluetoothd[1406]: Exit
Feb 12 08:10:52 optiplex sh[26195]: /bin/sh: 1: echo: echo: I/O error
Feb 12 08:10:52 optiplex systemd[1]: getty@tty1.service: Main process exited, code=killed, status=15/TERM
Feb 12 08:10:52 optiplex systemd[1]: getty@tty1.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Getty on tty1.
Feb 12 08:10:52 optiplex systemd[1]: uuidd.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Daemon for generating UUIDs.
Feb 12 08:10:52 optiplex systemd[1]: zram-setup@zram0.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Setup zram based device zram0.
Feb 12 08:10:52 optiplex systemd[1]: session-1.scope: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Session 1 of user root.
Feb 12 08:10:52 optiplex systemd[1]: Stopping User Manager for UID 0...
Feb 12 08:10:52 optiplex systemd[1]: Removed slice system-zram\x2dsetup.slice.
Feb 12 08:10:52 optiplex systemd[1]: Removed slice system-getty.slice.
Feb 12 08:10:52 optiplex systemd[2884]: Stopped target Default.
Feb 12 08:10:52 optiplex systemd[2884]: Stopped target Basic System.
Feb 12 08:10:52 optiplex systemd[2884]: Stopped target Timers.
Feb 12 08:10:52 optiplex systemd[2884]: Stopped target Sockets.
Feb 12 08:10:52 optiplex systemd[2884]: gpg-agent-browser.socket: Succeeded.
Feb 12 08:10:52 optiplex systemd[2884]: Closed GnuPG cryptographic agent and passphrase cache (access for web browsers).
Feb 12 08:10:52 optiplex systemd[2884]: gpg-agent-extra.socket: Succeeded.
Feb 12 08:10:52 optiplex systemd[2884]: Closed GnuPG cryptographic agent and passphrase cache (restricted).
Feb 12 08:10:52 optiplex systemd[2884]: gpg-agent.socket: Succeeded.
Feb 12 08:10:52 optiplex systemd[2884]: Closed GnuPG cryptographic agent and passphrase cache.
Feb 12 08:10:52 optiplex systemd[2884]: gpg-agent-ssh.socket: Succeeded.
Feb 12 08:10:52 optiplex systemd[2884]: Closed GnuPG cryptographic agent (ssh-agent emulation).
Feb 12 08:10:52 optiplex systemd[2884]: Stopped target Paths.
Feb 12 08:10:52 optiplex systemd[2884]: dbus.socket: Succeeded.
Feb 12 08:10:52 optiplex systemd[2884]: Closed D-Bus User Message Bus Socket.
Feb 12 08:10:52 optiplex systemd[2884]: dirmngr.socket: Succeeded.
Feb 12 08:10:52 optiplex systemd[2884]: Closed GnuPG network certificate management daemon.
Feb 12 08:10:52 optiplex systemd[2884]: Reached target Shutdown.
Feb 12 08:10:52 optiplex systemd[2884]: systemd-exit.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[2884]: Started Exit the Session.
Feb 12 08:10:52 optiplex systemd[2884]: Reached target Exit the Session.
Feb 12 08:10:52 optiplex NetworkManager[860]: <info>  [1581487852.5798] device (22:22:B4:71:1B:24): state change: disconnected -> unmanaged (reason 'removed', sys-iface-state: 'removed')
Feb 12 08:10:52 optiplex systemd[1]: rtkit-daemon.service: Main process exited, code=killed, status=15/TERM
Feb 12 08:10:52 optiplex systemd[1]: rtkit-daemon.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped RealtimeKit Scheduling Policy Service.
Feb 12 08:10:52 optiplex systemd[1]: tor@default.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Anonymizing overlay network for TCP.
Feb 12 08:10:52 optiplex systemd[1]: upower.service: Main process exited, code=killed, status=15/TERM
Feb 12 08:10:52 optiplex systemd[1]: upower.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Daemon for power management.
Feb 12 08:10:52 optiplex systemd[1]: Removed slice system-tor.slice.
Feb 12 08:10:52 optiplex NetworkManager[860]: ((src/settings/nm-settings-connection.c:361)): assertion '<dropped>' failed
Feb 12 08:10:52 optiplex systemd[1]: polkit.service: Main process exited, code=killed, status=15/TERM
Feb 12 08:10:52 optiplex systemd[1]: polkit.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Authorization Manager.
Feb 12 08:10:52 optiplex udisksd[517]: udisks daemon version 2.8.1 exiting
Feb 12 08:10:52 optiplex systemd[1]: bluetooth.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Bluetooth service.
Feb 12 08:10:52 optiplex systemd[1]: tdm.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Trinity Display Manager.
Feb 12 08:10:52 optiplex systemd[1]: user@0.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped User Manager for UID 0.
Feb 12 08:10:52 optiplex systemd[1]: Failed to attach 26209 to compat systemd cgroup /user.slice/user-0.slice/user-runtime-dir@0.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[1]: Stopping User Runtime Directory /run/user/0...
Feb 12 08:10:52 optiplex systemd[26209]: Failed to attach 26209 to compat systemd cgroup /user.slice/user-0.slice/user-runtime-dir@0.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[12163]: run-user-0.mount: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: run-user-0.mount: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Unmounted /run/user/0.
Feb 12 08:10:52 optiplex systemd[1]: udisks2.service: Succeeded.
Feb 12 08:10:52 optiplex systemd[1]: Stopped Disk Manager.
Feb 12 08:10:52 optiplex systemd[1]: Failed to attach 26213 to compat systemd cgroup /system.slice/watchdog.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[26213]: Failed to attach 26213 to compat systemd cgroup /system.slice/watchdog.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[1]: watchdog.service: Control process exited, code=exited, status=1/FAILURE
Feb 12 08:10:52 optiplex systemd[1]: watchdog.service: Failed with result 'exit-code'.
Feb 12 08:10:52 optiplex systemd[1]: Stopped watchdog daemon.
Feb 12 08:10:52 optiplex systemd[1]: watchdog.service: Triggering OnFailure= dependencies.
Feb 12 08:10:52 optiplex systemd[1]: Requested transaction contradicts existing jobs: Transaction for wd_keepalive.service/start is destructive (time-sync.target has 'stop' job queued, but 'start' is included in transaction).
Feb 12 08:10:52 optiplex systemd[1]: watchdog.service: Failed to enqueue OnFailure= job, ignoring: Transaction for wd_keepalive.service/start is destructive (time-sync.target has 'stop' job queued, but 'start' is included in transaction).
Feb 12 08:10:52 optiplex systemd[1]: Stopped target Multi-User System.
Feb 12 08:10:52 optiplex systemd[1]: Failed to attach 26214 to compat systemd cgroup /system.slice/speech-dispatcher.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[1]: Stopping LSB: Speech Dispatcher...
Feb 12 08:10:52 optiplex systemd[26214]: Failed to attach 26214 to compat systemd cgroup /system.slice/speech-dispatcher.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[1]: Failed to attach 26215 to compat systemd cgroup /system.slice/fail2ban.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[1]: Stopping Fail2Ban Service...
Feb 12 08:10:52 optiplex systemd[1]: Failed to attach 26216 to compat systemd cgroup /system.slice/lightdm.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[1]: Stopping LSB: Light Display Manager...
Feb 12 08:10:52 optiplex systemd[1]: Failed to attach 26217 to compat systemd cgroup /system.slice/virtualbox.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[1]: Stopping LSB: VirtualBox Linux kernel module...
Feb 12 08:10:52 optiplex systemd[1]: Failed to attach 26219 to compat systemd cgroup /system.slice/fam.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[1]: Stopping LSB: File Alteration Monitor...
Feb 12 08:10:52 optiplex systemd[26216]: Failed to attach 26216 to compat systemd cgroup /system.slice/lightdm.service: No such file or directory
Feb 12 08:10:52 optiplex systemd[26215]: Failed to attach 26215 to compat systemd cgroup /system.slice/fail2ban.service: No such file or directory

Почему-то хардварный watchdog тоже не сработал.
Нужно будет разбираться, почему. Он должен был спасти.

P.S. система не зависла, перезагрузил с помощью magic keys.

 , , ,

aidaho
()

Кто-нибудь использует Micro? (позиционируется как замена Nano)

Упал тут в бекпорты Debian Stable такой себе редактор micro.
https://github.com/zyedidia/micro

Стартует мгновенно, дефолтная цветовая схема приятная, хотя комментарии совсем уж блекло выглядят.
Кнопочки кастомизируются, командный интерфейс, буферы, юникод.
То есть вроде как редактор с претензией быть не столько nano, сколько правильным zile.

Но и нужность его в роли zile несколько сомнительна. Бинарник 14Мб.
Понятно, что статическая сборка всегда толстая, и надо смотреть в рантайме:

39940 emacs -nw -q --load /home/aidaho/.emacs-zile .bashrc 
24372 micro .bashrc

Объясните, в чём смысл то тогда?
Если добавить ещё треть занимаемой micro памяти, то можно уже полноценный emacs с чуть обрезанным конфигом стартануть.

 , , , ,

aidaho
()

SystemD намертво приклеился к сокету

root@optiplex:/home/aidaho# lsof -i tcp:6600
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd 2884 root   31u  IPv6  32705      0t0  TCP *:6600 (LISTEN)
root@optiplex:/home/aidaho# systemctl is-active mpd.socket
inactive
root@optiplex:/home/aidaho# lsof -i tcp:6600
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd 2884 root   31u  IPv6  32705      0t0  TCP *:6600 (LISTEN)
root@optiplex:/home/aidaho# systemctl stop mpd.socket
root@optiplex:/home/aidaho# systemctl disable mpd.socket
root@optiplex:/home/aidaho# systemctl status mpd.socket
● mpd.socket
   Loaded: loaded (/lib/systemd/system/mpd.socket; disabled; vendor preset: enabled)
   Active: inactive (dead)
   Listen: /run/mpd/socket (Stream)
           [::]:6600 (Stream)
root@optiplex:/home/aidaho# lsof -i tcp:6600
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd 2884 root   31u  IPv6  32705      0t0  TCP *:6600 (LISTEN)

Как разлучить их?

 , ,

aidaho
()

Дефолтный метод сжатия BTRFS для директорий с флагом +с

Погодите копипастить «zlib» из гугля, у меня тут странное:

compsize /media/aidaho/fatty/home/
Processed 24520254 files, 8197553 regular extents (8197556 refs), 16985253 inline.
Type       Perc     Disk Usage   Uncompressed Referenced
TOTAL       90%      518G         571G         571G
none       100%      493G         493G         493G
zlib        48%      810M         1.6G         1.6G
zstd        31%       24G          76G          76G

Данные скопированы сегодня ночью rsync в один присест на том с chattr +c в корне
/dev/mapper/luks-410ab3f2-184d-464c-a613-b12df9b3a95f on /media/aidaho/fatty type btrfs (rw,nosuid,nodev,relatime,space_cache,subvolid=5,subvol=/,uhelper=udisks2)


Я что-то пропустил и btrfs теперь ещё и автоматически подбирает метод сжатия, если он не указан во время монтирования?
Копировалось с ext4, поэтому вариант с прямым копипастом сжатых блоков отпадает.
udisks2 вроде за премонтированиями на ровном месте тоже не замечен.

Других рациональных объяснений пока нет.

 , , ,

aidaho
()

Debuan Buster не торт

Вышел 10.1, пора обновляться значит.


sysvinit можно поставить разве что на сервере.
Поддержка его чисто декларативная: практически любой пакет из какого-нибудь графического окружения имеет по цепочке жёсткую зависимость от systemd.
systemd-shim был выброшен и sysvinit реалистично можно использовать только без графического окружения.

Почитал доки systemd, чтобы примерно понимать что к чему, обновил три домашних машины.
На всех посыпались сервисы. При чём на разных машинах почему-то разные.
tinc, monit, mariadb, apparmor, autofs...

Где очевидно, то починил, а вот почему идентичный tinc тут работает, а там нет, непонятно вообще.
Если руками пустить, то работает, а как дебажить запуск силами systemd, хз.
Раньше сунул set -vx, set -eu в init скрипт, и любуешься, как и где кобыла сдохла.

Поддержки rc.local из коробки нет, нужно добавлять руками.
За много лет аналога sysv-rc-conf как не было, так и нет.

В текущем виде, в качестве drop-in replacement, systemd совершенно не готов.
Нужно доставать лопату и разгребать.


На ноуте с gma500 графика тухнет как дело доходит до переключения на графический фреймбуфер. Видимо gma500_gfx в ядре протух.
Ну хоть по ssh система доступна, и на том спасибо.
Надо будет достать с полочки старое ядро, и если действительно gma500_gfx, то настрочить багрепорт.


В общем: суббота закончилась, а на руках три полурабочие машины.
А ведь когда-то я на Debian Stable переехал именно чтобы больше не красноглазить, эх.

 , ,

aidaho
()

Быстрый запуск сессии emacs desktop

Давно уже не трогал свой конфиг, но вдруг приспичило решить давнюю проблему: долгий старт emacs desktop.

У меня сессия фактически вечная, и в ней ~500 файл-буферов.
Это и на современном ПК требует минуты две, чтобы завести emacs --daemon, а на Atom Z520 все пятнадцать.

Покурил код desktop, оказывается у него есть донельзя полезная функция отложенной загрузки desktop-idle-create-buffers.

(setq desktop-restore-eager 30)  ;; restore first (last used) 30 buffers
(setq desktop-lazy-idle-delay 5)  ;; lazily restore the rest

Казалось бы, отлично: сервер подрывается с готовыми 30ю последними буферами, и тихонько грузит остаток в фоне.
Но нет, на подгружаемые таким образом буферы срабатывают все хуки и тянется это тоже вечность.

После профайла оказалось, что дохрена времени тратится на flycheck новых буферов.
Отключил его в конфиге, но оказалось у desktop нет хука по завершению desktop-idle-create-buffers.
Попробовал завернуть в defadvice, но почему-то after не срабатывает.

В результате набыдлокодил вот это:

(defvar post-init-timer nil
  "Timer used to track desktop lazy load progress")

(defun check-lazy-load-complete ()
  "Check if desktop finished resurrecting all buffers"
  (if (not desktop-buffer-args-list) (desktop-full-lazy-load-complete)))

(defun desktop-full-lazy-load-complete ()
  "Hook function executed after desktop lazy load is completed"
  (cancel-timer post-init-timer)  ;; stop timer
  (message "Emacs ready in %s with %d garbage collections."
           (format "%.2f seconds"
                   (float-time
                    (time-subtract (current-time) before-init-time)))
           gcs-done)
  ;; Return to defaults after startup
  (setq gc-cons-threshold gc-cons-threshold-original)
  (setq gc-cons-percentage gc-cons-percentage-original)
  ;; Don’t compact font caches during GC.
  (setq inhibit-compacting-font-caches t)  ;; Emacs 25.2 or later
  (global-flycheck-mode t)
  (garbage-collect))

(setq post-init-timer (run-with-timer 60 5 'check-lazy-load-complete))


В начале конфига, соответственно:
;;; Call GC only once per 500M words (500Mb on x86 and 1000Mb on amd64) of allocations
(setq gc-cons-threshold-original gc-cons-threshold)  ;; save defaults
(setq gc-cons-percentage-original gc-cons-percentage)  ;; save defaults
(setq gc-cons-threshold 524288000)
(setq gc-cons-percentage 10)


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

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

Успех.

P.S. как истинный емаксер елиспа я до сих пор не знаю.

 ,

aidaho
()

Qrator всё?

С воскресного вечера отвалилось всё, что сидит за сервисами от Qrator Labs.
Это LOR, Хабр, и прочее.

Пока жду ответа провайдера, предлагаю провести местную перекличку.
Открывается ли без прокси https://qrator.net/ru/ ?

 ,

aidaho
()

Как сделать управление курсором RAlt+ijkl с помощью xmodmap?

Хочу сделать управление курсором по RAlt+ijkl глобальным в иксах.

Сделал так:

aidaho@optiplex:~$ cat ~/.Xmodmap
! Remove ralt from modifiers
remove mod1 = 108
! Use Right Alt as modifier for 'ijkl' cursor control
keycode 108 = Mode_switch

! Cheatsheet:
! keycode  <x> = <1> <2> <3> <4>
! <1>                      <key>
! <2>                <shift-key>
! <3>        <"Mode_switch"-key>
! <4>  <shift-"Mode_switch"-key>
! <5>                <AltGr-key>

keycode 31 = i I Up
keycode 44 = j J Left
keycode 45 = k K Down
keycode 46 = l L Right
keycode 30 = u U Home
keycode 32 = o O End
keycode 43 = h H Prior
keycode 57 = n N Next


xmodmap показывает, что RAlt больше не состоит в mod1
aidaho@optiplex:~$ xmodmap
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        ISO_Next_Group (0x42)
control     Control_L (0x25)
mod1        Alt_L (0x40),  XF86LaunchC (0xcd)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)



Дамп xkbcomp говорит, что всё как надо: RAlt стал вызывать Mode_switch, а у нужных кнопок появилась группа, на которую Mode_switch переключает.
aidaho@optiplex:~$ xkbcomp "$DISPLAY" -

...

key <AC06> {
        type[group1]= "ALPHABETIC",
        symbols[Group1]= [               h,               H ],
        symbols[Group2]= [           Prior ]
    };
    key <AC07> {
        type[group1]= "ALPHABETIC",
        symbols[Group1]= [               j,               J ],
        symbols[Group2]= [            Left ]
    };
    key <AC08> {
        type[group1]= "ALPHABETIC",
        symbols[Group1]= [               k,               K ],
        symbols[Group2]= [            Down ]
    };
    key <AC09> {
        type[group1]= "ALPHABETIC",
        symbols[Group1]= [               l,               L ],
        symbols[Group2]= [           Right ]
    };

...

   key <RALT> {
        type= "TWO_LEVEL",
        symbols[Group1]= [     Mode_switch,        NoSymbol ],
        actions[Group1]= [ SetMods(modifiers=modMapMods,clearLocks), SetMods(modifiers=modMapMods,clearLocks) ]
    };
...


Но ничего не работает.
В xev RAlt действительно стал регистрироваться как Mode_switch:
KeyRelease event, serial 147, synthetic NO, window 0xea00001,
    root 0xf5, subw 0x0, time 4017733026, (-216,203), root:(975,827),
    state 0x8, keycode 108 (keysym 0xff7e, Mode_switch), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 147, synthetic NO, window 0xea00001,
    root 0xf5, subw 0x0, time 4017735283, (-216,203), root:(975,827),
    state 0x0, keycode 108 (keysym 0xff7e, Mode_switch), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 147, synthetic NO, window 0xea00001,
    root 0xf5, subw 0x0, time 4017735593, (-216,203), root:(975,827),
    state 0x8, keycode 31 (keysym 0x69, i), same_screen YES,
    XLookupString gives 1 bytes: (69) "i"
    XmbLookupString gives 1 bytes: (69) "i"
    XFilterEvent returns: False

KeyRelease event, serial 147, synthetic NO, window 0xea00001,
    root 0xf5, subw 0x0, time 4017735678, (-216,203), root:(975,827),
    state 0x8, keycode 31 (keysym 0x69, i), same_screen YES,
    XLookupString gives 1 bytes: (69) "i"
    XFilterEvent returns: False

Но нажатие модифицированных клавиш с зажатым Mode_switch продолжает возвращать оригинальные биндинги.

Что я делаю не так?

 , , xkbcomp,

aidaho
()

BSD опять умирает

https://www.csoonline.com/article/3250653/open-source-tools/is-the-bsd-os-dyi...

По свидетельству специалиста по безопасности, BSD-системы испытывают очень высокий дефицит кадров.
Многие тривиальные баги остаются висеть месяцами:


van Sprundel says he easily found around 115 kernel bugs across the three BSDs, including 30 for FreeBSD, 25 for OpenBSD, and 60 for NetBSD. Many of these bugs he called «low-hanging fruit.» He promptly reported all the bugs, but six months later, at the time of his talk, many remained unpatched.



Ещё цитаты для Ъ:

the most consistent quality was observed with OpenBSD


NetBSD the «clear loser» in terms of code quality


«Maybe ten years back there was this notion that FreeBSD was better performance wise, that its network stack was much better, and other such things,» Argyroudis says. «I'm not so sure if that's the case anymore. I would definitely be skeptical about that.»

 , , ,

aidaho
()

UMPC восстают из мёртвых: GPD LIN 2

Похоже, на улице UMPC под управлением Linux наконец-то намечается праздник.
Фанатам Sharp Zaurus и HP Jornada приготовиться: полноценные карманные ПК возвращаются.

Спеки GPD WIN 2:




Видеообзоры: Linus Tech Tips, GPD Win 2 - Review

И, гвоздь программы: GPD Win 2 - Linux Works Perfect
Практически изкоробочная поддержка железа под онтопиком.

Текущая цена по предзаказу на Indiegogo составляет $649.
Осталось 315 штук. Говорят, что возможно поставщик поднимет цену на следующую партию m3-7Y30, и цена вырастет.

 , gpd win,

aidaho
()

RSS подписка на новые темы