KDUMP: kexec_file_load не удалось назначить запрошенный адрес

Это проще, чем вы думаете на самом деле - элементы XML имеют 4 «вещи» - имя, атрибуты, дочерние элементы и «контент».

Таким образом, вы можете перебирать все элементы содержимого и просто печатать их (с переводом строки или без него).

#!/usr/env/perl

use strict;
use warnings;

use XML::Twig;

my $twig = XML::Twig -> parsefile ( 'your_file');
print $_ -> text."\n" for grep { $_ -> is_pcdata } $twig -> get_xpath('//*');

Это выявляет все узлы «содержимого» ( pcdata ) и печатает их - по одному на каждый линия.

Но на самом деле, когда дело доходит до XML, «читабельный» - это своего рода суть. Почему бы просто не распечатать его и оставить как есть, чтобы человек, читающий его, мог ... ну, прочитать и не потерять данные в процессе.

Вы можете переформатировать его, если хотите:

$twig -> set_pretty_print ('indented_a'); 
$twig -> print;

Это довольно хорошее приближение к «читаемому человеку».

0
11.12.2018, 18:53
1 ответ

Позвольте мне ответить, насколько я могу с предоставленной информацией.

Во-первых, SLES 12 (и более поздние версии )действительно не нуждаются в пакете ядра -kdump. Этот особый вариант ядра был нужен только в древние времена, потому что ядро ​​паники должно быть загружено по физическому адресу, отличному от работающего ядра, но адрес загрузки можно было изменить только во время компиляции (, иначе ядро ​​нельзя было перемещать ). ].

Во-вторых, kdump не запускается, потому что базовый системный вызов kexec_file_loadзавершается с ошибкой EADDRNOTAVAIL. Это происходит, если система не может выделить один или несколько буферов, необходимых для загрузки ядра паники в оперативную память. Обратите внимание, что теоретически может быть достаточно зарезервированной памяти для ядра паники, но поскольку выделение имеет некоторые дополнительные ограничения, накладываемые загрузочным кодом ядра Linux и/или драйверами, эта оперативная память может не использоваться для загрузки ядра паники. Другой системе может повезти больше благодаря другому расположению физической памяти.

В качестве первого шага я бы попробовал увеличить размер зарезервированной памяти в командной строке ядра (, например. crashkernel=256M), перезагрузитесь и посмотрите, поможет ли это.

2
28.01.2020, 02:31

Теги

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