LINUX.ORG.RU

Сообщения sukhorukov

 

Qt - Вывод информации в консоль - qjsengine

Вопрос по qjs api (qjsengine) бывший qtscript.

Когда выводишь в консоль к примеру командой: «print(„hello world!“); Получается след. выхлоп: „js: hello world!“

Вопрос как избавиться от приставки „js: “ - сделать чистый вывод без этого информационного дополнения???? В qtscript такого не было....

 ,

sukhorukov ()

Как связать dhcp на роутере и tftpd-hpa на сервере?

Загрузчик pxelinux делает DHCP-запрос и с его помощью получает IP-адрес и адрес TFTP-сервера.

Если есть но-нейм роутер с dhcp, и сервер debian c поднятым tftpd-hpa, может кто подскажет так как же их связать?

 ,

sukhorukov ()

QDataStream перегрузка оператора << и >> для класса QObject*

Здравствуйте, есть примерный код:

#include <QCoreApplication>
#include <qobject.h>
#include <qmetatype.h>
#include <qdatastream.h>
#include <qvariant.h>

QDataStream &operator <<(QDataStream &out, const QObject *object)
{
    Q_UNUSED(object);
    return out;
}
QDataStream &operator >>(QDataStream &in, QObject *object)
{
    Q_UNUSED(object);
    return in;
}


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // регестрируем
    qRegisterMetaTypeStreamOperators<QObject*>();

    QDataStream stream;
    QObject* ob = new QObject();

    QVariant var;
    var.setValue(ob);
    var.save(stream);       // при отладке должные попасть в  перегрузку '<<', но не попадаем

    return 0;
}

Делаем перегрузку, регестрируем, радуемся отсутствию ошибок, но при отладке в перегруженные функции не попадаем.

Хотя, если заменить QObject, в следующих строках на имя любого своего класса, все работает как надо (то есть, код - рабочий):

  • QDataStream &operator <<(QDataStream &out, const QObject *object)
  • QDataStream &operator >>(QDataStream &in, QObject *object)
  • qRegisterMetaTypeStreamOperators<QObject*>();

Подозреваю, что загвоздка в перегрузке операторов именно под класс QObject - как можно исхитрится, чтобы это дело обойти и все заработало?
Не использовать таким образом класс QObject не могу, очень надо, чтобы все заработало.

 ,

sukhorukov ()

Как определить какой параметр ядра относится к какому модулю?

Пусть, CONFIG_UNIX_DIAG=m

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

А как понять какой модуль требуется?

 , ,

sukhorukov ()

vi/vim сохранение резервной копии измененного файла

За создание резервной копии файла, при изменении, отвечают команды (~/.vimrc):

set backup
set undofile

Первая - непосредственно создает копию файла до его изменения, вторая ведет файл изменений (undo). Оба файла имеют маркирующий постфикс '~' в конце имени и префикс в виде точки в начале, делающая их невидимыми.

То есть, если мы отредактировали файл «test.txt» - будут созданы еще два файла ".test.txt~", ".test.txt.un~" соответственно.

Так вот у меня есть вопрос, почему при редактировании исполняемых файлов, создаются доп. файлы без точки в начале и как это лечится? Без точки они перестают быть невидимыми, засоряют экран и всячески напрягают.

То есть, если отредактировали исполняемый файл *test.sh - получим два файла *test.sh~, *test.sh.un~ (уже без точек в начале).

 , ,

sukhorukov ()

удаление gpt командой dd

GPT можно удалить с помощью программы gdisk:

gdisk /dev/sda
x — extra functionality (experts only)
z — zap (destroy) GPT data structures and exit

А как корректно удалить (не захватив лишнее) GPT средствами dd?

 , ,

sukhorukov ()

удаление mbr с таблицей разделов

Объясните непосвященному - полагал что для удаления mbr c таблицей разделов необходимо затереть блочное устройство диска. Разве не так?

Смотрю диск:

$ sudo fdisk -l /dev/sdd

Disk /dev/sdd: 7,5 GiB, 8022654976 bytes, 15669248 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x064f1f4a

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdd1          63 15663374 15663312  7,5G 83 Linux

Затираю mbr (446 bytes) + таблицу разделов (64 bytes) + сигнатуру активности (2 bytes):

$ sudo dd if=/dev/random of=/dev/sdd bs=512 count=1
0+1 записей получено
0+1 записей отправлено
 скопировано 113 байт (113 B), 0,00288571 c, 39,2 kB/c

Проверяю блочное устройство диска и вижу - все на месте! Как так?!

$ sudo fdisk -l /dev/sdd

Disk /dev/sdd: 7,5 GiB, 8022654976 bytes, 15669248 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x064f1f4a

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdd1          63 15663374 15663312  7,5G 83 Linux

 

sukhorukov ()

удаление/восстановление суперблоков RAID

Допустим есть RAID состоящий из двух разделов sda1, sdb1.

Удаление массива осуществляется затиркой суперблоков:
# mdadm --zero-superblock /dev/sda1
# mdadm --zero-superblock /dev/sdb1

Как сделать резервную копию суперблоков, на случай их восстановления?

 ,

sukhorukov ()

программный raid + шифрование

Всю жизнь сначала создавал raid, а уже после его зашифровывал. Но вот на глаза попалась статья в журнале «Хакер» #200 за сентябрь 2015: Наследники «Энигмы» (стр. 297), где упоминается, обратный алгоритм действий, и я глубоко задумался..., но так и не пришел к единому тру-мнению.

Так как же поступать?

  1. создавать raid массив, а потом его зашифровать;
  2. зашифровать диски входящие в массив, а уже потом собирать на их основе raid.

Хотелось бы не привязываться к оборудованию и уровню raid - обобщить тему.

P.S. конечно понятно, что все в нашей жизни зависит от поставленных целей, но хотелось бы найти наиболее универсальный вариант.

 , ,

sukhorukov ()

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