pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как посмотреть пароль PostgreSQL?

Лучший ответ: 
И ещё ошибка с from psycopg2 import OperationalError, он просто не находит OperationalError
находит:
>>> from psycopg2 import OperationalError
>>> OperationalError
<class 'psycopg2.OperationalError'>
>>> psycopg2.__version__
'2.8.6 (dt dec pq3 ext lo64)'
версия psycopg2 какая?

The error 'FATAL: password authentication failed for user "postgres"
Проверяйте свой pg_hba.conf. Там нужна запись для 127.0.0.1 или localhost

UPD:
Как этот пароль посмотреть или новый создать?
Инсталлятор может задавать какой-то пароль по умолчанию, а может и вообще не задавать (тогда юзер postgres не сможет входить по паролю). Вам нужно либо настроить в pg_hba.conf вход без пароля (метод trust), либо зайти через консоль/pgadmin и задать пароль:
ALTER ROLE postgres WITH PASSWORD '123'; или в psql \password

Зайти через консоль/pgadmin без пароля получится только, если в pg_hba.conf это настроено (обычно инсталлятор это делает, если нет - меняйте файл вручную и не забудьте рестартнуть постгрес).

Худший ответ: Что значит - Постгресс был?? Как он мог установиться сам??? 
Вы вообще знаете как ПК и система работает? Если нет - начать надо с изучения этого...
Спросите пароль у того кто поставил постгресс
Вопрос: Как часто нужна модель MVC?

Лучший ответ: Да, это полезно - написать свой фреймворк и/или CMS.
Потом полезно сравнить его с laravel или symfony, найти чем ваш фреймворк лучше.
Если ничем не лучше - можете его смело забросить, и переходить на что-то общеизвестное, и вот почему:

Представим, что у вас заказали лендинг по заказу насосов, например, и вы сделали его на своем фреймворке. Через 5 лет вы сменили род деятельности, и водите экскурсии по Тасмании.  Или вас укусил радиоактивный паук, и теперь вы спасаете мир, а поддержкой сайтов не занимаетесь.

Сервис с насосами за это время вырос, они теперь еще и бурят скважины, и фильтры устанавливают и колодцы копают, и у них филиалы в 20 городах. Им нужно доработать сайт. И при поиске разработчика выясняется, что сайт ваш доработать невозможно, т.к. документации по фреймворку нет, готовых модулей совместимых нет, интеграций с 1C, google docs, microsoft sharepoint нет, и никогда не будет. И проще переписать с нуля, чем разбираться как оно у вас там устроено.

А если бы сайт был на общеизвестном фреймворке, то гораздо проще найти и специалистов и найти готовые интеграции.

Никто не закажет сайт на самописном фреймворке если он планирует развитие своего бизнеса и понимает что он вообще делает. То есть ваши потенциальные клиенты - это только те, кто впервые заказывает себе сайт, и вы ему смогли впарить самоделку.

Худший ответ: Всегда полезно отделять мух от котлет. 

Дело не в том, что MVC так важен. Дело в том, что данные нужно отделять от логики, а логику от представления. 

Внутри этих сущностей тоже будет свое деление. Повторяющиеся моменты нужно переиспользовать, и вот ты уже не заметил, как написал свой собственный недофреймворк. 

Учитывая, что фреймворк, дословно - проволочный каркас, то это нормально изобретать своё. Порой его даже вполне достаточно. 

Чем тот же ларавель лучше? Тем, что в него угрохано на несколько порядков больше человеко-часов и мозгов большого количества специалистов, гораздо более высокого уровня, чем в среднем по больнице. Соответственно качество кода в нем должно быть выше, а основные уязвимости и грабли давно собраны и вылечены, что не гарантируется в самопальном недофреймворке. Ну и предусмотрено много такого, о чем ты. возможно. даже не подозреваешь.

А в целом те же яйки, только в профиль.
Вопрос: Как укоротить синстаксис деструктуризации?

Лучший ответ: Деструктуризацию долой, сделать массив имён свойств:

const payload = {
  data: Object.fromEntries([
    'раз свойство',
    'два свойство',
    'три свойство',
  ].map(n => [ n, this[n] ])),
};

Худший ответ: С деструктуризацией неизбежно двойное повторение всех имен свойств — то, чего вы, как я понял, хотите избежать.

Можно вспомогательной функцией:
const pickProps = (object, ...keys) => keys.reduce((acc, c) => ({ ...acc, [c]: object[c] }), {});
использованиеlet payload = {
  data: pickProps(
    this,
    'customer',
    'tool_type',
    'tool_brand',
    'tool_model',
    'tool_serial_code',
    'defect_type',
    'defect_description',
    'request_type',
    'request_description',
    'status'
  ),
}
Вопрос: Синхронизация Windows 10 с NTP сервером по заданию?

Лучший ответ: Если не ошибаюсь, то этой командой выполняется только настройка службы синхронизации времени.
А принудительная синхронизация это w32tm /resync

Худший ответ: Да,  w32tm /resync помогло, благодарю!

Теперь пытаюсь создать задание в Планировщике - все прописал, но что то не хочет выполняться...
Подожду потом отпишусь по результатам

UPD да, планировщик запускается (раз в 15 минут) вопрос решен!
Всем большое спасибо за участие!
С наступающим НГ!
Вопрос: Есть какие-то поддерживаемые не онлаин карты?

Лучший ответ: https://www.openstreetmap.org/ не?

Худший ответ: посмотри вот это может подойдёт
Вопрос: Какие защищенные беспроводные клавиатуры и мыши существуют?

Лучший ответ: Уж если параноить, то до конца! По ссылке, которую Вы же привели в комментариях, пишут:Главный совет — не использовать беспроводные клавиатуры и мыши для ввода конфиденциальных данных — важных паролей, логинов, CVV-кодов.Комфорт и безопасность несовместимы. А Вы хотите и рыбку съесть и ... хакерам не попасться.
Ну а так, даже в Яндекс.Маркете для мышей есть фильтр "Возможность шифрования данных", что бы это не значило. И если по первой попавшейся под этот фильтр мышке Logitech Marathon M705 пойти дальше, то на сайте производителя в её характеристиках действительно есть "secure wireless connection". Дальше уже у производителя выясняйте, что он имеет ввиду. И на сколько оно "secure"!

Худший ответ: По BT и так достаточно безопасно
Вопрос: Роутер через время сбрасывается до заводских настроек. Как исправить?

Лучший ответ: Может быть нельзя прошить версию 1 сразу на 3, нужно через промежуточную 2.
Попробуйте найти версию 2 прошивки и прошить сначала ею, а потом 2 проапгрейдить на 3.
Еще можно поискать подходящую неофициальную прошивку, может быть такие есть для вашего роутера.

Худший ответ: скорее всего его сбрасывает автоскрипт билайна...
проверить прото, как выше сказали, настройте что нить и оставьте работать, но без WAN кабеля
если же сбросится - скорее всего проще в мусорку
Вопрос: Какой смысл писать комментарий к коммиту?

Лучший ответ: осмысленное описание комита - маст хэв. 
prj-3 - это говно, а не описание комита. 

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

Худший ответ: ну вот представь ситуацию, что ты свою задачу "PRJ-3" не смог с одного коммита сделать (а такое случается довольно часто). и вот у тебя образовалось 20 коммитов с комментом "PRJ-3". и ты там много чего переделывал и теперь опять что-то изменилось и тебе нужно посмотреть одну из первых реализаций задачи. ты помнишь, что она где-то в начальных коммитах, но не помнишь в каком. вот тебе и придется сидеть и открывать по одному эти коммиты и смотреть тот это или не тот.
а были бы комментарии нормальные - ты бы это увидел по ним и лишних движений бы не было.
p.s. а когда с момента реализации прошла неделя, месяц, год - ситуация усложняется в разы. потому что тут уже ты и сам не будешь помнить что и когда ты писал.
Вопрос: Компания просит уволиться из текущего места работы перед собеседованием, нормально ли?

Лучший ответ: То есть вам они ничего не гарантируют, но хотят чтобы вы уже уволились? Скорее всего попытаются прогнуть на условия оплаты или (что вероятнее) на условия работы. Потому что вы уже уволились, работа вам нужна уже сейчас, а значит вы будете сговорчивее. Собственно это сразу показывает отношение к персоналу в данной конторе - нагибать и ставить ультиматумы. Поэтому, лично я бы после такого предложения не раздумывая сказал бы "до свидания. Хотя нет, прощайте"

Нормальные компании не только не просят увольняться, но и, сделав официальный оффер (то есть пообещав заключить договор, а иногда даже уже заключив договор) согласны ждать 2 недели (а иногда и больше) пока сотрудник завершит дела на текущем месте работы и выйдет к ним. А не так: "вы увольняйтесь, а мы вас собеседуем. Может быть возьмем, может быть не возьмем, ничего не обещаем".

Худший ответ: Добрый день. 
Они могут дать оффер перед собеседованием?
Если да, то и уволиться не проблема.
Вопрос: Возможно ли создать алгоритм для угадывания рандомных чисел ЭВМ?

Лучший ответ: Да, если это псевдослучайные числа.
Только нужно знать алгоритм генерации этих самых псевдослучайных чисел. Собственно, он и будет решением.

Главное, что для псевдослучайных чисел такой алгоритм существует. Даже если его не знать, его в теории можно угадать. А значит ответ на вопрос - всё-таки возможно.

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

Худший ответ: Да, были такие случаи, когда человек десятилетиями следил за выпадением "рандомных" цифр в ток шоу, где нужно угадывать числа, и потом выиграл огромные суммы. Организаторы таких шоу теперь в курсе таких штук и теперь невозможно просчитать следующее число
Вопрос: В какой среде программировать для Windows XP?

Лучший ответ: Лошадь сдохла. Пристрелите лошадь. 

для Windows XP сейчас делать что то это большой прайс.

Худший ответ: Если сидите на Visual Studio, то терпите политику Микрософта. А они официально XP не поддерживают. Через несколько лет также уйдут в прошлое 7-ка и 10-ка.

Универсальный ответ - ассемблер плюс документации по API винды. А так что угодно не микросовтовское. Можно хоть в обычном блокноте на С++ писать, если вам нужен именно этот язык. Ведь компиляторы есть отдельно от IDE.

Ещё могу посоветовать сначала установить XP на отдельную машину или на виртуалку, - и на неё уже ставить старые версии VS. Но это из серии просто попробовать, без гарантии, что заведётся.
Вопрос: Какой то абсурд с bluetooth соединением?

Лучший ответ: Ну во первых Вы купили дешевый китайский гамноадаптер
Во вторых - скорее всего не хватает мощности, перебивает то же вифи например сигнал. Попробуйте вотнуть БТ адаптер подближе, спереди например. или положить его на стол перед собой на usb удлинители. если это решит вопрос - то проблема в помехах

Худший ответ: Так и должно быть. Купи нормальный адаптер.
Вопрос: Где используется бинарный поиск?

Лучший ответ: Да много где. 

Вот, в хроме, например.

Из примеров там видно - поиск в списке заблокированных usb устройств, поиск графем в выводимом тексте, что-то с сертификатами, с метриками, при выборе какие видео фреймы рисовать...

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

Худший ответ: Я лично использовал для поиска перегоревшей лампочки в новогодней гирлянде.
Дано: китайская гирлянда из несколькиз сот галогенок соединенных последовательно. Пол часа до нового года. Одна лампочка перегорела - не горит вся гирлянда. Галогенки мелкие у какой нить перегорела визуально не видно. Че делать?
Мда почесал я затылок. Яж у мамы программист, применим дихотомический поиск. Делим гирлянду пополам, берем отвертку индикатор и суем в цоколь лампы. Если индикатор горит то значит фаза пробивает до половины, делим другую половину пополам и повторяем заново. Если не горит то делим текущую половину пополам  и так далее. За несколько O(n) итераций перегоревшая лампочка была найдена и заменена. Новый год настал, все щастливы :)
З.Ы.
Это к вопросу о том пригодится ли вам в жизни интеграл. Ну помните анекдот про ключи.
Вопрос: Влияет ли IP на доставляемость почты?

Лучший ответ: Не знаю, как работают Spark или Canary, никогда не пользовался, а вот протоколом SMTP пользовался.

gmail.com очень неохотно доставляет письма от частных smtp серверов  даже (с настроенным DKIM, SPF, и т.п.) , только от авторитетных и wellknown. Поэтому после плясок я отказался от идеи поднимать свой smtp сервер.
gmail.com вообще гораздо охотней и надёжней доставляет через web интерфейс чем от smtp клиента. Для smtp клиентов есть тонкости настройки. Адреса, порты и SSl/TLS требования периодически меняются.
Конечно smtp сервер знает IP адрес клиента который к нему обращается. Это первая после рукопожатия smtp команда в обмене -- `EHLO 100.500.000.000` И если у сервера есть основания считать адрес ненадёжным, вполне может на этом и прекратить общение. 
Всему этому есть здравое объяснение -- smtp древний, слабо защищённый протокол, разработанный в старые времена когда интернет был дружелюбным. Сегодня для защиты от атак и злоупотреблений smtp серверы не имея гарантий протокола вводят искуственные ограничения.


Худший ответ: Не должно - почту доставляет сервер, а не мобильное приложение.
Хотя теоретически, можно притянуть за уши, что какой-то антисмам смотрит на заголовки письма (туда попадает IP, с которого сообщение попало на почтовый сервер), но это маловероятно.
Вопрос: Как удалить запись в таблице через 7 дней?

Лучший ответ: Храните дату создания записи и просто при выборке исключайте строки, которые старее 7 дней относительно времени запроса.

Еще небольшой вопрос. Если все-таки такое сделать возможно, то будет ли это сильно нагружать БД, скажем так, примерно, при 10'000 записях?
10к это очень маленькое количество записей. На таком объеме не будет заметно.
А вот если у вас сотни тысяч вставок и удалений, то фризы гарантированны.

Худший ответ: Я никогда не работал с SQL базами данных, только с MongoDB, и там есть такое понятие, как Time To Life index, то есть мы помечаем поле с датой создания (UTC формат) этой записи индексом TTL и задаём параметр ExpiresAfrerSeconds (в неделе 60 * 60 * 24 * 7 секунд) и по итогу, база данных удалит нам эту запись через неделю.

Не знаю, как в postgre, но возможно вам стоит почитать про TTL в вашей базе данных.
Вопрос: Как открыть порт 443?

Лучший ответ: Все открыто. Проверяйте слушает ли этот порт какой то сервис

Худший ответ: Почему Вы решили, что не открылся? Нет связи по нему? Тогда смотрите фаервол, например, и в апаче все сертификаты настроили?
Вопрос: Куда можно задеплоить телеграм бота с sqlite?

Лучший ответ: Бесплатно - никуда (кроме heroku).
Платно - любой VDS.
Касательно же heroku - там есть поддержка postgresql. При нормальной структуре кода переписать с sqlite на postgresql относительно просто.

Худший ответ: Vps за 100р арендуйте
Вопрос: Как передать содержимое в переменную PHP?

Лучший ответ: ну типа:
<div id="list"></div>

<script type="text/javascript">
  jQuery(document).ready(function($) {
    jQuery.post('index.php', 'list': jQuery('#list').html(), function(data, textStatus, xhr) {
      /*optional stuff to do after success */
    });
  });
</script>

на стороне сервера:
<?php
#index.php
echo $_POST['list']; // содержимое div-а с id = list

Худший ответ: Отвечу максимально полно

Чтобы скрипт php что то 'получил', он должен быть как минимум запущен, подавляющее большинство стратегий создания приложений на php это когда клиент (браузер) либо чистый html либо javascript делает запрос на сервер, а сервер запускает на короткое время php скрипт чтобы тот вернул ответ (готовый html или данные в каком то виде, например json чтобы javascript обработал)

Общение между браузером и сервером происходит по http короткими запросами вопрос-ответ, поэтому фраза 'установить переменную' немного некорректна в этом случае, ведь установив переменную в результате запроса, таковой она будет только тот короткий момент, пока этот запрос обрабатывается (например все что идет в http запросе как GET или POST параметры, веб сервер автоматически прописывает в глобальные переменные $_GET и $_POST соответственно, бери и читай). Для отправки запросов из браузера на сервер есть готовые библиотеки, гуглить ajax (на чистом javascript без библиотек для этого можно использовать XMLHttpRequest)

Поэтому есть способ передачи данных через заголовки запроса, с помощью cookies, браузер устанавливает куки, которые автоматически в дальнейшем добавляются к любому запросу с данного домена на сервер. На сервере в php доступ к ним можно получить из переменной $_COOKIE. Так же есть способ установить куки со стороны сервера. С точки зрения эффективности это не самый лучший способ, так как данные получаются не сохраняются где то на сервере, а транслируются повторно с каждым запросом, поэтому большие объемы хранить там не рекомендуется.

Существует подход, когда php приложение не короткоживущий скрипт а сам веб сервер, обработка запросов, чтение get/post параметров, куки и прочее, в этом случае обрабатывает это приложение (есть библиотеки, например асинхронный php react), но зато, так как приложение не завершает свою работу после запроса, прочитав переменную из запроса ее можно сохранить в памяти приложения. Этот подход на порядок ускоряет работу приложений по сравнению с классическим http-rest подходом (ведь скриптам не нужно на каждый запрос восстанавливать состояние серверного приложения, загружая нужные данные откуда-то, например из базы данных) т.е. из коробки более быстрый но сложнее к масштабированию.

В качестве бонуса  у этого подхода появляется удобная возможность использовать websocket, когда запросы отправляются не в виде отдельных а как пакет данных внутри уже открытого соединения (если что веб серверы и браузеры поддерживают и для типичного http rest незакрываемые соединения, но они заголовки так или иначе передаются, занимая время и ресурсы), и не только клиентское приложение сможет отправлять запросы от браузера на сервер но и сервер сможет слать сообщения клиенту
Вопрос: ОС для создания терминала киоска?

Лучший ответ: Можно попробовать использовать готовые дистрибутивы Linux для создания киоска:
https://porteus-kiosk.org/
https://webconverger.com/
Либо попробовать сделать свою сборку какого-либо существующего дистрибутива и упаковать её в установочный ISO. Насколько мне известно, достаточно несложно кастомизировать образ Arch Linux (ArchISO) под свои задачи:
https://wiki.archlinux.org/title/Archiso
https://viperfang.net/project/arch_kiosk
https://gist.github.com/ctrlaltdylan/01255fc86f2cb...
https://www.reddit.com/r/archlinux/comments/d5d5uc...
Либо сделать на базе Debian:
https://abc101.medium.com/simple-kiosk-box-by-debi...
https://github.com/josfaber/debian-kiosk-installer

Скрипт для настройки Debian или Arch Linux для работы в режиме киоска: https://github.com/Salamek/chromium-kiosk

Худший ответ: Под Windows можно настроить режим киоска (там он называется режим "терминала") с Edge в качестве браузера в пару кликов. Правда если нужны какие-то дополнительные предварительные настройки браузера, то могут возникнуть проблемы.
Вопрос: Какая книга станет хорошим фундаментом для изучения C#?

Лучший ответ: Мне нравится эта книга (онлайн). Лучше не встречались, ещё и всегда актуальная версия.

Худший ответ: Все хорошие. 
Третья - это скорее справочник, чем полноценная книга.
Я бы выбрал троелсена.
Вопрос: Какую библиотеку использовать для парсинга большого количества страниц?

Лучший ответ: Да сделай ты уже на хоть чем-то))))

Ну будет у тебя разница в скорости между инструментами варьироваться час-два.....
А так я за хардкор. чистый requests.

Худший ответ: Вы бы определились - с чем именно проблемы могут возникнуть в вашем случае.
Толку от быстрой библиотеки парсинга страницы не будет если сайт вам страницу полминуты отдавать будет...
Толку от обычного подхода парсинга не будет, если страницу для получения данных на стороне броузера рендерить надо будет или какие-то действия выполнять.
Толку от большого количества запросов в единицу времени не будет, - если сервер будет в бан отправлять за частые запросы.
Ну и т.п.... Так что правильно вам говорят - беритесь уже хоть за что нибудь, да решайте проблемы по мере поступления.
Вопрос: Как написать проверку фильтром?

Лучший ответ: Попробуй
characters.filter(i => i !== 'thoma' &&  i !== 'habr)

Худший ответ: Попробуй
characters.filter(i => i !== 'thoma' &&  i !== 'habr)
Вопрос: Почему не работает NGINX?

Лучший ответ: /etc/nginx/sites-enabled/domain.conf должен быть симлинком на /etc/nginx/sites-available/domain.conf, а не его копией. 
Если не умеешь делать симлинки оставь только конфиг в /etc/nginx/sites-enabled/domain.conf
Убедись, что в /etc/nginx/nginx.conf есть include /etc/nginx/sites-enabled/*.conf;

Конфиг сделай таким:
server {
    listen 80;

    server_name domain;

    location /.well-known/acme-challenge/ {
            alias /path/to/.well-known/acme-challenge/;
            allow all;
            default_type "text/plain";
            try_files $uri =404;
    }

    location / {
        return 301 https://domain$request_uri;
    }
}

Получи сертификат:
certbot certonly --agree-tos  --email webmaster@domain --webroot -w /path/to/ -d domain

Сгенерируй dhparam openssl dhparam -out /etc/nginx/dhparam4096.pem 4096

Затем добавь конфиг для https версии:
server {
    listen 443 ssl http2;

    server_name domain;

    ssl_certificate /etc/letsencrypt/live/domain/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem;

    ssl_dhparam /etc/nginx/dhparam4096.pem; 
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ecdh_curve secp384r1:prime256v1:X25519;
    ssl_session_timeout 24h;
    ssl_session_cache shared:TLS:20m;
    resolver 1.1.1.1 8.8.8.8;
    resolver_timeout 5s;
    ssl_stapling on;
    ssl_stapling_verify on;
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

    location / {
        proxy_pass http://localhost:5000;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection ‘upgrade’;
        proxy_cache_bypass $http_upgrade;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Синтаксис: proxy_pass URL; - протокол тоже надо указывать.

Худший ответ: В Virtualhost - почему 2 одинаковых сервера указаны?
И для ssl обычно используется 443 порт... а не 80

UPdюю аа увидел. 1 конфиг Вы два раза показали зачем то

Короче копайте в стороны прописать 443 порт
Вопрос: Как клонировать систему со всеми пользователями и настройками на меньший по объёму диск?

Лучший ответ: 
вставляете диск2
подготавливаете диск2, создав и отформатировав разделы
монтируете разделы диска2 к своей системе
внимательно читаете это
выставляете в rsync то что вам нужно и копируете данные с диск1 на диск2
на диске2 правите fstab и чините свой загрузчик
отключаете диск1 и запускаете систему с диска2

можно проделывать из системы которую переносим и без бекапа (так как мы не трогаем основную систему и в случае чего можно просто загрузится с диска1)

Худший ответ: Как бы сделал я
Вариант 1:
1. Ставим TimeShift и сделаем бекап всей системы через rsync на внешний носитель. Можно и без TimeShift через консольный rsync ели умеете пользоваться
2. Сделаем бекап домашней директории через Deja Dup
3. Загрузиться через любой live дистрибутив,  сделать нужную разметку диска через gparted или аналог, установить в этом же live дистрибутиве TimeShift и Deja Dup.
4. Восстанавливаем бекапы которые ранее сделали
5. Устанавливаем загрузчик GRUB. Вроде всё.

Вариант 2:
1. Тупо весь системный раздел скопируем на внешний диск, простым копированием. То же самое сделаем для домашней директории. К примеру, просто создайте на внешнем диске папки System и Home и в соответствующие папки закиньте файлы.
2. Загрузиться через любой live дистрибутив, сделать нужную разметку диска через gparted или аналог
3. После разметки копируем файлы обратно на нужные разделы
4. Устанавливаем загрузчик GRUB