Обновление PostgreSQL в Docker через pg_dumpall
Обновление PostgreSQL между мажорными версиями задача не самая простая, недостаточно просто загрузить новый контейнер, нужно еще выполнить конвертацию структуры кластера СУБД, которая меняется от версии к версии.
Для небольших и средних баз идеально использовать импорт/экспорт при помощи утилиты pg_dumpall, что полностью исключает риск повреждения исходных данных, плюс у вас на руках всегда остается актуальная резервная копия в виде дампа всего кластера.
Итак, приступим, допустим мы изначально имеем:
В нашем случае:
▫️ db — имя сервиса Compose
▫️ postgres-db — реальное имя контейнера Docker
1️⃣ Остановим весь стек и запустим обратно только контейнер с СУБД, это исключит возможную запись в БД во время выгрузки:
Теперь выполним выгрузку дампа всего кластера:
Проверяем, что файл выгрузки создан. После чего останавливаем контейнер с БД:
2️⃣ Следующие шаги будут несколько различаться в отличие от того, используем ли мы Named Volumes или Bind mount, но в любом случае наша задача запустить новый контейнер СУБД с пустым томом.
🔹 Для Named Volumes было:
Стало:
🔹 Для Bind mount было:
Стало:
3️⃣ Запускаем СУБД:
Мы нее запускаем весь стек, чтобы раньше времени приложения не начали писать в новую чистую БД.
Ждем пока база инициализируется и готова будет принимать соединения, для этого выполним команду:
Как только появится сообщение:
Можно двигаться дальше. Загружаем дамп кластера СУБД:
Теперь запускаем весь стек:
4️⃣ После чего рекомендуется выполнить оптимизацию загруженной базы:
Это не мешает работе и можно запускать уже на работающем стеке. Старые тома лучше всего оставить на некоторое время, пока вы не убедитесь, что обновление прошло нормально.
Обновление PostgreSQL между мажорными версиями задача не самая простая, недостаточно просто загрузить новый контейнер, нужно еще выполнить конвертацию структуры кластера СУБД, которая меняется от версии к версии.
Для небольших и средних баз идеально использовать импорт/экспорт при помощи утилиты pg_dumpall, что полностью исключает риск повреждения исходных данных, плюс у вас на руках всегда остается актуальная резервная копия в виде дампа всего кластера.
Итак, приступим, допустим мы изначально имеем:
services:
db:
container_name: postgres-db
В нашем случае:
▫️ db — имя сервиса Compose
▫️ postgres-db — реальное имя контейнера Docker
1️⃣ Остановим весь стек и запустим обратно только контейнер с СУБД, это исключит возможную запись в БД во время выгрузки:
docker compose stop
docker compose up -d db
Теперь выполним выгрузку дампа всего кластера:
docker exec -t postgres-db pg_dumpall -U postgres > full_backup.sql
Проверяем, что файл выгрузки создан. После чего останавливаем контейнер с БД:
docker compose down
2️⃣ Следующие шаги будут несколько различаться в отличие от того, используем ли мы Named Volumes или Bind mount, но в любом случае наша задача запустить новый контейнер СУБД с пустым томом.
🔹 Для Named Volumes было:
services:
db:
image: postgres:17
volumes:
- pg_data:/var/lib/postgresql/data
volumes:
pg_data:
Стало:
services:
db:
image: postgres:18
volumes:
- pg_data_18:/var/lib/postgresql/data
volumes:
pg_data_18:
🔹 Для Bind mount было:
services:
db:
image: postgres:17
volumes:
- ./postgres-data:/var/lib/postgresql/data
Стало:
services:
db:
image: postgres:18
volumes:
- ./postgres-data-18:/var/lib/postgresql/data
3️⃣ Запускаем СУБД:
docker compose up -d db
Мы нее запускаем весь стек, чтобы раньше времени приложения не начали писать в новую чистую БД.
Ждем пока база инициализируется и готова будет принимать соединения, для этого выполним команду:
docker logs -f postgres-db
Как только появится сообщение:
database system is ready to accept connections
Можно двигаться дальше. Загружаем дамп кластера СУБД:
docker exec -i postgres-db psql -U postgres < full_backup.sql
Теперь запускаем весь стек:
docker compose up -d
4️⃣ После чего рекомендуется выполнить оптимизацию загруженной базы:
docker exec -it postgres-db vacuumdb -U postgres --all --analyze-only
Это не мешает работе и можно запускать уже на работающем стеке. Старые тома лучше всего оставить на некоторое время, пока вы не убедитесь, что обновление прошло нормально.
👍8⚡3😁2❤1
УТМ ЕГАИС 403 Forbidden - Доступ к странице с данного IP не разрешен
С такой ошибкой столкнулся сегодня один наш коллега. Предыстория проста. В самом веб-интерфейсе UTM есть фильтр IP-адресов, в котором можно указать доверенные адреса и сети, обращения с других адресов будут отклоняться.
А дальше – проще, немного не подумал или опечатался и доступа у тебя больше нет. Как раз этим наш коллега и решил заняться, тем более что в регионе у нас три «для трезвости» подряд. Но что-то пошло не так и доступ пропал отовсюду.
Поиск в сети, к удивлению, результатов не дал, везде написана какая-то ерунда, а в тематических сообществах и вовсе советуют переустановить УТМ, он бы так и сделал, но за неожиданные выходные в УТМ собралось много входящих документов.
В любом случае переустановка – это не наш метод, всегда следует разобраться в проблеме, иначе переустанавливать на каждый чих просто утомишься.
Итак, белые списки, если они есть, то должны где-то хранится, а каком-то конфигурационном файле. Вот поиском этого и займемся. Недолгие поиски привели нас к файлу
В самом низу он содержит две интересные опции:
Первая – это список адресов, с которых были попытки подключений. Хотя зачем они в конфиге? Логично было бы хранить их в логе. А вот последняя – это и есть наш белый список. Можете откорректировать его до нужных значений, а можете просто очистить.
Ошибка нашего коллеги была классическая, он набрал 192.186.х.х вместо 192.168.х.х.
После чего просто перезапустите службу УТМ и доступ восстановится.
С такой ошибкой столкнулся сегодня один наш коллега. Предыстория проста. В самом веб-интерфейсе UTM есть фильтр IP-адресов, в котором можно указать доверенные адреса и сети, обращения с других адресов будут отклоняться.
А дальше – проще, немного не подумал или опечатался и доступа у тебя больше нет. Как раз этим наш коллега и решил заняться, тем более что в регионе у нас три «для трезвости» подряд. Но что-то пошло не так и доступ пропал отовсюду.
Поиск в сети, к удивлению, результатов не дал, везде написана какая-то ерунда, а в тематических сообществах и вовсе советуют переустановить УТМ, он бы так и сделал, но за неожиданные выходные в УТМ собралось много входящих документов.
В любом случае переустановка – это не наш метод, всегда следует разобраться в проблеме, иначе переустанавливать на каждый чих просто утомишься.
Итак, белые списки, если они есть, то должны где-то хранится, а каком-то конфигурационном файле. Вот поиском этого и займемся. Недолгие поиски привели нас к файлу
transport/conf/transport.properties в директории установки УТМ. У нас указан путь для Linux установки, в Windows его расположение аналогично.В самом низу он содержит две интересные опции:
web.server.attempt.ip =
web.server.access.ip =
Первая – это список адресов, с которых были попытки подключений. Хотя зачем они в конфиге? Логично было бы хранить их в логе. А вот последняя – это и есть наш белый список. Можете откорректировать его до нужных значений, а можете просто очистить.
Ошибка нашего коллеги была классическая, он набрал 192.186.х.х вместо 192.168.х.х.
После чего просто перезапустите службу УТМ и доступ восстановится.
👍22🔥3❤2🤝2
Особенности установки УТМ ЕГАИС на Debian 13
Сегодня попробовали установить УТМ ЕГАИС на свежий дистрибутив Debian 13. Сама установка не вызывает особых сложностей и ее можно выполнить по нашей статье:
🔹 ЕГАИС. Устанавливаем УТМ 4.2.0 на Debian (Ubuntu)
При этом, вместо
Сам пакет u-trans тоже ставится без особых проблем, запускается, но не работает. Если вы откроете лог, то увидите, что УТМ не может обнаружить ключ. Странно, ведь инсталлятор увидел Рутокен и инструменты диагностики тоже его видят.
Поэтому читаем лог дальше и находим интересные записи:
Это значит, что библиотека требует наличия executable stack (исполняемый стек), который отключен в Debian 13 по соображениями безопасности (а также в Ubuntu, начиная с 25.10).
👆 Включить данную технологию не представляется возможным (во всяком случае без глубокого изменения системы), поэтому можно считать, что УТМ ЕГАИС несовместим с Debian 13 и грядущей Ubuntu 26.04 LTS.
😉 Ну если, конечно, разработчики Росалкогольтабакконтроль не перепишут программу, но надежды на это призрачные, с учетом того, что u-trans для Linux до сих пор 32-битное приложение.
С другой стороны, у нас все-таки Linux и каждый тут сам кузнец собственного счастья. Указанные в ошибках библиотеки являются библиотеками PKCS11Lib от Рутокен и поставляются вместе с пакетом УТМ.
Поэтому мы можем заменить их на более современные версии библиотек от Рутокен, которые не требуют executable stack.
Скачать их можно на https://download.rutoken.ru в разделе /Rutoken/PKCS11Lib/Current/Linux/x32/, просто качаем
Для этого перейдем в домашнюю папку и скачаем библиотеку через wget, в нашем случае это последняя на сегодня версия, вам же потребуется уточнить версию библиотеки:
Затем останавливаем УТМ, заменяем необходимые библиотеки (их там две копии) и снова запускаем УТМ:
После чего все запускается и отлично работает. Посмотреть лог УТМ в реальном времени можно командой:
Но данное действие вам придется выполнять всякий раз после переустановки или обновления УТМ.
❗️Также обратите внимание, что данный способ проверен только с токенами Рутокен и работа с JaCarta не проверялась и не гарантируется.
👉 Кроме того, добавим – непосредственной необходимости ставить УТМ ЕГАИС на Debian 13 в текущий момент нет, сервис это сугубо внутренний и при необходимости может эксплуатироваться даже на устаревших версиях системы.
Сегодня попробовали установить УТМ ЕГАИС на свежий дистрибутив Debian 13. Сама установка не вызывает особых сложностей и ее можно выполнить по нашей статье:
🔹 ЕГАИС. Устанавливаем УТМ 4.2.0 на Debian (Ubuntu)
При этом, вместо
libncurses5:i386 следует устанавливать libncurses6:i386, а библиотека SSL называется libssl3t64 и скорее всего будет установлена по умолчанию.Сам пакет u-trans тоже ставится без особых проблем, запускается, но не работает. Если вы откроете лог, то увидите, что УТМ не может обнаружить ключ. Странно, ведь инсталлятор увидел Рутокен и инструменты диагностики тоже его видят.
Поэтому читаем лог дальше и находим интересные записи:
/opt/utm/lib/librtpkcsllecp.so: невозможно задействовать исполняемый стек, как требует разделяемый объект
Это значит, что библиотека требует наличия executable stack (исполняемый стек), который отключен в Debian 13 по соображениями безопасности (а также в Ubuntu, начиная с 25.10).
👆 Включить данную технологию не представляется возможным (во всяком случае без глубокого изменения системы), поэтому можно считать, что УТМ ЕГАИС несовместим с Debian 13 и грядущей Ubuntu 26.04 LTS.
😉 Ну если, конечно, разработчики Росалкогольтабакконтроль не перепишут программу, но надежды на это призрачные, с учетом того, что u-trans для Linux до сих пор 32-битное приложение.
С другой стороны, у нас все-таки Linux и каждый тут сам кузнец собственного счастья. Указанные в ошибках библиотеки являются библиотеками PKCS11Lib от Рутокен и поставляются вместе с пакетом УТМ.
Поэтому мы можем заменить их на более современные версии библиотек от Рутокен, которые не требуют executable stack.
Скачать их можно на https://download.rutoken.ru в разделе /Rutoken/PKCS11Lib/Current/Linux/x32/, просто качаем
librtpkcs11ecp.so. Для этого перейдем в домашнюю папку и скачаем библиотеку через wget, в нашем случае это последняя на сегодня версия, вам же потребуется уточнить версию библиотеки:
cd ~
wget https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x32/librtpkcs11ecp.so
Затем останавливаем УТМ, заменяем необходимые библиотеки (их там две копии) и снова запускаем УТМ:
supervisorctl stop utm
cp -v librtpkcs11ecp.so /opt/utm/lib/librtpkcs11ecp.so
cp -v librtpkcs11ecp.so /opt/utm/lib/librtpkcs11ecp-replica.so
supervisorctl start utm
После чего все запускается и отлично работает. Посмотреть лог УТМ в реальном времени можно командой:
tail -f /opt/utm/transport/l/transport_info.log
Но данное действие вам придется выполнять всякий раз после переустановки или обновления УТМ.
❗️Также обратите внимание, что данный способ проверен только с токенами Рутокен и работа с JaCarta не проверялась и не гарантируется.
👉 Кроме того, добавим – непосредственной необходимости ставить УТМ ЕГАИС на Debian 13 в текущий момент нет, сервис это сугубо внутренний и при необходимости может эксплуатироваться даже на устаревших версиях системы.
1👍25🔥3
Store CLI – интерфейс командной строки для Microsoft Store
Не так давно без лишнего шума и анонсов в последних выпусках Windows появилась утилита командной строки Store CLI, предназначенная для работы с магазином Microsoft.
Для ее использования откройте терминал и просто наберите:
И вы получите короткую справку, которой достаточно чтобы начать с ней работать.
Для просмотра уже установленных из магазина приложений выполните:
Для поиска обновлений отдельного приложения выполните:
Сразу для всех:
Чтобы установить обновления добавьте ключ
Для поиска приложений используйте:
Также можно искать по расширению:
И вы получите все приложения для работы с mp4.
Если вы хотите подобрать альтернативы приложению, то выполните поиск похожих:
Для просмотра каталога можно воспользоваться специальными командами, например, сначала просмотрим категории и субкатегории:
Теперь выведем топ бесплатных приложений определенной категории:
Или топ платных в субкатегории:
Найдя нужное приложение, мы можем установить его командой:
В качестве параметра можно указать имя приложения или ID, второе предпочтительно, так как однозначно определяет приложение, даже если опубликовано несколько его версий. Например, для установки VLC можно использовать команды:
Возможности удаления приложений магазина в данной версии консольной утилиты нет.
Не так давно без лишнего шума и анонсов в последних выпусках Windows появилась утилита командной строки Store CLI, предназначенная для работы с магазином Microsoft.
Для ее использования откройте терминал и просто наберите:
store
И вы получите короткую справку, которой достаточно чтобы начать с ней работать.
Для просмотра уже установленных из магазина приложений выполните:
store installed
Для поиска обновлений отдельного приложения выполните:
store update AppName
Сразу для всех:
store updates
Чтобы установить обновления добавьте ключ
–apply: store update AppName --apply
store updates –apply
Для поиска приложений используйте:
store search AppName
Также можно искать по расширению:
store extension mp4
И вы получите все приложения для работы с mp4.
Если вы хотите подобрать альтернативы приложению, то выполните поиск похожих:
store similar vlc
Для просмотра каталога можно воспользоваться специальными командами, например, сначала просмотрим категории и субкатегории:
store app-categories
Теперь выведем топ бесплатных приложений определенной категории:
store browse-apps top-free --category "Utilities & tools"
Или топ платных в субкатегории:
store browse-apps top-paid --subcategory "Personal Security"
Найдя нужное приложение, мы можем установить его командой:
store install AppName/ID
В качестве параметра можно указать имя приложения или ID, второе предпочтительно, так как однозначно определяет приложение, даже если опубликовано несколько его версий. Например, для установки VLC можно использовать команды:
store install VLC
store install XPDM1ZW6815MQM
Возможности удаления приложений магазина в данной версии консольной утилиты нет.
👍14🤣7
Обновление PostgreSQL в Docker через pg_upgrade
Продолжаем тему обновления контейнеров PostgreSQL между мажорными версиями, в прошлой заметке мы рассмотрели миграцию при помощи утилиты pg_dumpall.
Это простой и надежный способ, но у него есть один существенный недостаток: pg_dumpall – однопоточен, использует для выгрузки и загрузки только одно ядро и выполняет все операции последовательно, как они записаны в файле дампа.
На крупных и даже средних базах такой подход может привести к неконтролируемому времени простоя, что неприемлемо. Поэтому сегодня мы рассмотрим миграцию при помощи другой утилиты - pg_upgrade.
Преимущество pg_upgrade в том, что он не делает экспорт/импорт, не пересоздает всю структуру СУБД, а работает на уровне файлов базы данных.
Итак, приступим, допустим мы изначально имеем:
В нашем случае:
▫️ db — имя сервиса Compose
▫️ postgres-db — реальное имя контейнера Docker
1️⃣ Остановим весь стек и запустим обратно только контейнер с СУБД для создания резервной копии, это исключит возможную запись в БД во время выгрузки:
Теперь выполним выгрузку дампа всего кластера:
Проверяем, что файл дампа создан и останавливаем контейнер с БД:
2️⃣ Следующие шаги будут несколько различаться в отличие от того, используем ли мы Named Volumes или Bind mount.
🔹 При Named Volumes создаем дополнительный именованный том для нового кластера СУБД:
И запускаем специальный контейнер для апгрейда:
Данный контейнер НЕ является официальным образом PostgreSQL, это community image от Tianon Gravi, но он де-факто является стандартом в мире Docker.
Обратите внимание на тег контейнера, он указывает версии, с которой и на которую мы переходим, в нашем случае это 17-to-18, в других случаях выбирайте контейнер с нужным тегом.
Затем меняем Compose, было:
Стало:
🔹 Для Bind mount создаем новую директорию:
И запускаем служебный контейнер:
Затем меняем Cpmpose, было:
Стало:
3️⃣ Запускаем стек:
И выполняем оптимизацию базы:
Это не мешает работе и можно запускать уже на работающем стеке. Старые тома лучше всего оставить на некоторое время, пока вы не убедитесь, что обновление прошло нормально.
Продолжаем тему обновления контейнеров PostgreSQL между мажорными версиями, в прошлой заметке мы рассмотрели миграцию при помощи утилиты pg_dumpall.
Это простой и надежный способ, но у него есть один существенный недостаток: pg_dumpall – однопоточен, использует для выгрузки и загрузки только одно ядро и выполняет все операции последовательно, как они записаны в файле дампа.
На крупных и даже средних базах такой подход может привести к неконтролируемому времени простоя, что неприемлемо. Поэтому сегодня мы рассмотрим миграцию при помощи другой утилиты - pg_upgrade.
Преимущество pg_upgrade в том, что он не делает экспорт/импорт, не пересоздает всю структуру СУБД, а работает на уровне файлов базы данных.
Итак, приступим, допустим мы изначально имеем:
services:
db:
container_name: postgres-db
В нашем случае:
▫️ db — имя сервиса Compose
▫️ postgres-db — реальное имя контейнера Docker
1️⃣ Остановим весь стек и запустим обратно только контейнер с СУБД для создания резервной копии, это исключит возможную запись в БД во время выгрузки:
docker compose stop
docker compose up -d db
Теперь выполним выгрузку дампа всего кластера:
docker exec -t postgres-db pg_dumpall -U postgres > full_backup.sql
Проверяем, что файл дампа создан и останавливаем контейнер с БД:
docker compose down
2️⃣ Следующие шаги будут несколько различаться в отличие от того, используем ли мы Named Volumes или Bind mount.
🔹 При Named Volumes создаем дополнительный именованный том для нового кластера СУБД:
docker volume create pg_data_18
И запускаем специальный контейнер для апгрейда:
docker run --rm \
-e POSTGRES_USER=postgres \
-v pg_data:/var/lib/postgresql/17/data \
-v pg_data_18:/var/lib/postgresql/18/data \
tianon/postgres-upgrade:17-to-18
Данный контейнер НЕ является официальным образом PostgreSQL, это community image от Tianon Gravi, но он де-факто является стандартом в мире Docker.
Обратите внимание на тег контейнера, он указывает версии, с которой и на которую мы переходим, в нашем случае это 17-to-18, в других случаях выбирайте контейнер с нужным тегом.
Затем меняем Compose, было:
services:
db:
image: postgres:17
volumes:
- pg_data:/var/lib/postgresql/data
volumes:
pg_data:
Стало:
services:
db:
image: postgres:18
volumes:
- pg_data_18:/var/lib/postgresql/data
volumes:
pg_data_18:
🔹 Для Bind mount создаем новую директорию:
mkdir ./data/postgres-data-18
И запускаем служебный контейнер:
docker run --rm \
-e POSTGRES_USER=postgres \
-v ./data/ postgres-data:/var/lib/postgresql/17/data \
-v ./data/postgres-data-18:/var/lib/postgresql/18/data \
tianon/postgres-upgrade:17-to-18
Затем меняем Cpmpose, было:
services:
db:
image: postgres:17
volumes:
- ./postgres-data:/var/lib/postgresql/data
Стало:
services:
db:
image: postgres:18
volumes:
- ./postgres-data-18:/var/lib/postgresql/data
3️⃣ Запускаем стек:
docker compose up -d
И выполняем оптимизацию базы:
docker compose exec -T db vacuumdb -U postgres --all --analyze-in-stages
Это не мешает работе и можно запускать уже на работающем стеке. Старые тома лучше всего оставить на некоторое время, пока вы не убедитесь, что обновление прошло нормально.
👍14❤1
Relax-and-Recover (ReaR) - средство аварийного восстановления системы
Среди инструментов резервного копирования существует отдельная группа - системы аварийного восстановления на "голое железо" (Bare Metal Disaster Recovery - BMDR), которые позволяют полностью восстановить систему в случае выхода из строя оборудования или уничтожения системы при воздействии иных факторов.
Relax-and-Recover - сокращенно ReaR - как раз и представляет такую систему, простую в использовании, но достаточно мощную в работе. С ее помощью вы сможете быстро восстановить вашу ОС Linux на новое оборудование, либо выполнить перенос системы со старого оборудования на новое, либо в виртуальную среду.
Перед тем как начинать работу с ReaR следует уточнить некоторые принципиальные моменты. ReaR предполагает создание двух достаточно независимых сущностей: загрузочного образа и резервной копии.
Загрузочный образ позволяет загрузить систему и выполнить восстановление ее макета, под которым подразумевается дисковая разметка, разделы и файловые системы на них, поддерживаются все типы разметки, включая программный RAID и LVM. Но при этом макет не содержит никаких данных, он просто восстановит структуру дисковой подсистемы.
Резервная копия не содержит сведений о структуре хранения, а просто содержит данные, которые там хранились. Это достигается за счет того, что файловая система Linux иерархична и всегда имеет общий корень, это позволяет просто скопировать все данные одним архивом, а как именно они располагаются на физических носителях определяется макетом.
Кстати, Relax-and-Recover поддерживает множество внешних систем резервного копирования, что позволяет разделить процесс резервного копирования макета и резервного копирования данных, но это выходит за рамки данной статьи и ниже мы будем использовать только встроенные средства.
✅ Читать далее: https://interface31.ru/post/relax-and-recover-sredstvo-avariynogo-vosstanovleniya-sistemy/
Среди инструментов резервного копирования существует отдельная группа - системы аварийного восстановления на "голое железо" (Bare Metal Disaster Recovery - BMDR), которые позволяют полностью восстановить систему в случае выхода из строя оборудования или уничтожения системы при воздействии иных факторов.
Relax-and-Recover - сокращенно ReaR - как раз и представляет такую систему, простую в использовании, но достаточно мощную в работе. С ее помощью вы сможете быстро восстановить вашу ОС Linux на новое оборудование, либо выполнить перенос системы со старого оборудования на новое, либо в виртуальную среду.
Перед тем как начинать работу с ReaR следует уточнить некоторые принципиальные моменты. ReaR предполагает создание двух достаточно независимых сущностей: загрузочного образа и резервной копии.
Загрузочный образ позволяет загрузить систему и выполнить восстановление ее макета, под которым подразумевается дисковая разметка, разделы и файловые системы на них, поддерживаются все типы разметки, включая программный RAID и LVM. Но при этом макет не содержит никаких данных, он просто восстановит структуру дисковой подсистемы.
Резервная копия не содержит сведений о структуре хранения, а просто содержит данные, которые там хранились. Это достигается за счет того, что файловая система Linux иерархична и всегда имеет общий корень, это позволяет просто скопировать все данные одним архивом, а как именно они располагаются на физических носителях определяется макетом.
Кстати, Relax-and-Recover поддерживает множество внешних систем резервного копирования, что позволяет разделить процесс резервного копирования макета и резервного копирования данных, но это выходит за рамки данной статьи и ниже мы будем использовать только встроенные средства.
✅ Читать далее: https://interface31.ru/post/relax-and-recover-sredstvo-avariynogo-vosstanovleniya-sistemy/
👍19❤1
Стоит ли пропускать процесс обновления Windows на этапе OOBE
Автоматическое обновление Windows уже давно стало автоматическим, которое просто работает, вне зависимости от вашего желания. Системный администратор может гибко настроить этот процесс, отложить обновления на некоторый срок, да и только.
В Windows 11 процесс автоматического обновления на этапе первого включения (OOBE) сделали обязательным, хочешь – не хочешь, а сиди и жди. Но с некоторых последних версий появилась возможность его пропустить. Ну классно же!
Тут вспоминается старая поговорка: гладко было на бумаге, да забыли про овраги…
В общем появилась у нас необходимость настроить и отдать заказчику некоторое количество Мини-ПК, которые из коробки идут с Windows 11. Процесс начальной установки обновлений на системах с N100 занимает примерно от 40 минут, до часа.
Каждый раз ждать? Тем более что сам процесс настройки несложен: установить NET 3.5, IIS, штатный набор ПО через Winget, драйвера торгового оборудования, платформу 1С и опубликовать базу на IIS. Работы от силы на полчаса, а то и меньше.
Ну так чего ждать? Пропустим, настроим, отдадим и пусть оно там уже само качает, благо настроить параметры обновления и перезагрузки во внерабочее время можно единственным файлом реестра.
Сказано – сделано, на втором Мини-ПК мы пропустили этап обновления и быстро занялись настройкой… Но не тут-то было…
Winget радостно сообщил нам, что msstore недоступен и поставить чего-то он может только из репозитория winget с явным указанием источника в команде. Т.е. все наши скрипты разом сломались.
Установка компонентов Windows (NET и IIS) зависла на нулевой отметке, без каких-либо признаков жизни.
Если перейти в Центр обновления Windows, то там видны нужные обновления, но все серое, везде 0%. Хотя в диспетчере задач явно обновления ставятся.
Но это полбеды, при перезагрузке система долго, очень долго начинает устанавливать обновления, потом перезагружается и начинает их откат. В итоге в системе все у вас начнется по новой.
Как быть? А никак, оставить ее в покое и дождаться пока она сама поставит все необходимые обновления. По сути, нажатие на Пропустить на этапе OOBE ничего не меняет и обновление будет автоматически запущено по фону при входе в систему, делая ее условно работоспособной.
Поэтому что пнем об сову, что сову об пень, разницы никакой. Времени вы не выиграете. Так что пусть обновляется так, как это и задумано – на этапе OOBE, а это время просто внесите в планирование работ.
Автоматическое обновление Windows уже давно стало автоматическим, которое просто работает, вне зависимости от вашего желания. Системный администратор может гибко настроить этот процесс, отложить обновления на некоторый срок, да и только.
В Windows 11 процесс автоматического обновления на этапе первого включения (OOBE) сделали обязательным, хочешь – не хочешь, а сиди и жди. Но с некоторых последних версий появилась возможность его пропустить. Ну классно же!
Тут вспоминается старая поговорка: гладко было на бумаге, да забыли про овраги…
В общем появилась у нас необходимость настроить и отдать заказчику некоторое количество Мини-ПК, которые из коробки идут с Windows 11. Процесс начальной установки обновлений на системах с N100 занимает примерно от 40 минут, до часа.
Каждый раз ждать? Тем более что сам процесс настройки несложен: установить NET 3.5, IIS, штатный набор ПО через Winget, драйвера торгового оборудования, платформу 1С и опубликовать базу на IIS. Работы от силы на полчаса, а то и меньше.
Ну так чего ждать? Пропустим, настроим, отдадим и пусть оно там уже само качает, благо настроить параметры обновления и перезагрузки во внерабочее время можно единственным файлом реестра.
Сказано – сделано, на втором Мини-ПК мы пропустили этап обновления и быстро занялись настройкой… Но не тут-то было…
Winget радостно сообщил нам, что msstore недоступен и поставить чего-то он может только из репозитория winget с явным указанием источника в команде. Т.е. все наши скрипты разом сломались.
Установка компонентов Windows (NET и IIS) зависла на нулевой отметке, без каких-либо признаков жизни.
Если перейти в Центр обновления Windows, то там видны нужные обновления, но все серое, везде 0%. Хотя в диспетчере задач явно обновления ставятся.
Но это полбеды, при перезагрузке система долго, очень долго начинает устанавливать обновления, потом перезагружается и начинает их откат. В итоге в системе все у вас начнется по новой.
Как быть? А никак, оставить ее в покое и дождаться пока она сама поставит все необходимые обновления. По сути, нажатие на Пропустить на этапе OOBE ничего не меняет и обновление будет автоматически запущено по фону при входе в систему, делая ее условно работоспособной.
Поэтому что пнем об сову, что сову об пень, разницы никакой. Времени вы не выиграете. Так что пусть обновляется так, как это и задумано – на этапе OOBE, а это время просто внесите в планирование работ.
🤔13😁5❤4🤡2
Вторая жизнь старого POS-терминала
В комментариях нас спрашивали, какая цель публикации базы 1С на мини-ПК. Поэтому расскажем об одной схеме, которая проверена и обкатана нами на реальной рознице в течении последнего года.
Начнем с проблемы. В рознице широко распространено использование специализированных ПК – POS-терминалов. Это специализированный моноблок с сенсорным экраном, максимально решающий задачи розницы.
Типовой POS-терминал последние годы представлял собой систему на классическом Intel J1900 или в более поздних моделях J3xxx/J4xxx, что для современной 1С с маркировкой уже недостаточно.
Да, можно купить новые POS-терминалы на N100, то стоимость одного такого терминала будет на уровне 50-60 тыс. руб., что может быть еще приемлемо в рамках одного магазина, но в рамках сети это уже серьезные расходы, тем более в наше непростое время.
Заменить на обычный ПК? Тоже не вариант, да и не живут обычные ПК долго на кассе, POS-терминалы не зря столько стоят, потому что кроме всего прочего они еще и «антивандальные». Плюс кассиры уже привыкли работать с сенсором, а если мы говорим про общепит, то там и не отвыкали.
Но с производительностью все плохо и надо что-то решать. Хорошим решением в данной ситуации будут мини-ПК, которые стоят недорого и предоставляют гораздо более высокий уровень производительности.
Для современной 1С будет достаточно моделей уровня N100, хотя в примерно в те же деньги вы можете купить и что-то более мощное, обычно на AMD.
Разместить такой мини-ПК можно в подсобном помещении или где-то в районе кассы так, чтобы к нему был доступ, но было затруднительно его сломать, уронить, завалить бумагами, пакетами и т.п.
На него ставится джентельменский набор ПO: платформа 1С, нужные торговые драйвера, например, для весов, служебные утилиты и поднимается веб-сервер. В Windows из коробки есть IIS, который отлично работает и используем мы именно его. После чего на этом мини-ПК публикуется база.
На POS-терминале меняем локальную базу на нашу веб-публикацию, при этом вам даже не придется перенастраивать торговое оборудование, так как оно подключается к рабочему месту, а оно в 1С не изменилось.
В результате сохраняем максимально привычное рабочее окружения кассира, но серьезно поднимаем вычислительные возможности кассы, там, где вчера все тормозило система начинает ну если не летать, то весьма быстро шевелится.
В результате все довольны, особенно бизнес, который решил проблему при достаточно малом уровне затрат.
В комментариях нас спрашивали, какая цель публикации базы 1С на мини-ПК. Поэтому расскажем об одной схеме, которая проверена и обкатана нами на реальной рознице в течении последнего года.
Начнем с проблемы. В рознице широко распространено использование специализированных ПК – POS-терминалов. Это специализированный моноблок с сенсорным экраном, максимально решающий задачи розницы.
Типовой POS-терминал последние годы представлял собой систему на классическом Intel J1900 или в более поздних моделях J3xxx/J4xxx, что для современной 1С с маркировкой уже недостаточно.
Да, можно купить новые POS-терминалы на N100, то стоимость одного такого терминала будет на уровне 50-60 тыс. руб., что может быть еще приемлемо в рамках одного магазина, но в рамках сети это уже серьезные расходы, тем более в наше непростое время.
Заменить на обычный ПК? Тоже не вариант, да и не живут обычные ПК долго на кассе, POS-терминалы не зря столько стоят, потому что кроме всего прочего они еще и «антивандальные». Плюс кассиры уже привыкли работать с сенсором, а если мы говорим про общепит, то там и не отвыкали.
Но с производительностью все плохо и надо что-то решать. Хорошим решением в данной ситуации будут мини-ПК, которые стоят недорого и предоставляют гораздо более высокий уровень производительности.
Для современной 1С будет достаточно моделей уровня N100, хотя в примерно в те же деньги вы можете купить и что-то более мощное, обычно на AMD.
Разместить такой мини-ПК можно в подсобном помещении или где-то в районе кассы так, чтобы к нему был доступ, но было затруднительно его сломать, уронить, завалить бумагами, пакетами и т.п.
На него ставится джентельменский набор ПO: платформа 1С, нужные торговые драйвера, например, для весов, служебные утилиты и поднимается веб-сервер. В Windows из коробки есть IIS, который отлично работает и используем мы именно его. После чего на этом мини-ПК публикуется база.
На POS-терминале меняем локальную базу на нашу веб-публикацию, при этом вам даже не придется перенастраивать торговое оборудование, так как оно подключается к рабочему месту, а оно в 1С не изменилось.
В результате сохраняем максимально привычное рабочее окружения кассира, но серьезно поднимаем вычислительные возможности кассы, там, где вчера все тормозило система начинает ну если не летать, то весьма быстро шевелится.
В результате все довольны, особенно бизнес, который решил проблему при достаточно малом уровне затрат.
1👍26🤝7🔥5❤2
Тонкое управление Windows Update
Автоматические обновления Windows способны серьезно отравлять жизнь как пользователей, так и системных администраторов обычно сваливаясь как снег на голову и приводя к перезагрузкам или тормозам в самый разгар рабочего времени.
Но и игнорировать обновления тоже не вариант, в современном мире это может приводить и приводит к самым печальным последствиям, обычно в виде очередной эпидемии какого-нибудь червя или трояна.
Поэтому данный вопрос следует поставить под контроль и максимально уложить его в заданные рамки, сделав доступным и предсказуемым. Для этого мы давно используем ряд настроек, которые удобнее всего применять в виде патча реестра.
Отдельное спасибо скажем нейросети, за то, что красиво отформатировала, упорядочила и прокомментировала наш файл:
В целом там все написано, но уточним одну деталь:
Используйте по собственному усмотрению, в ряде случаев разумнее поставить там
Также учтите, что современные системы игнорируют эту опцию, если обновление помечено как «критическое» или «безопасность», для предотвращения спонтанной перезагрузки в этом случае как раз и добавлен блок «дедлайнов».
Автоматические обновления Windows способны серьезно отравлять жизнь как пользователей, так и системных администраторов обычно сваливаясь как снег на голову и приводя к перезагрузкам или тормозам в самый разгар рабочего времени.
Но и игнорировать обновления тоже не вариант, в современном мире это может приводить и приводит к самым печальным последствиям, обычно в виде очередной эпидемии какого-нибудь червя или трояна.
Поэтому данный вопрос следует поставить под контроль и максимально уложить его в заданные рамки, сделав доступным и предсказуемым. Для этого мы давно используем ряд настроек, которые удобнее всего применять в виде патча реестра.
Отдельное спасибо скажем нейросети, за то, что красиво отформатировала, упорядочила и прокомментировала наш файл:
Windows Registry Editor Version 5.00
; =================================================================
; Настройка Windows Update: Контроль расписания, активных часов и перезагрузок
; =================================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
; Включить управление активными часами (система не будет перезагружаться в этот период)
"SetActiveHours"=dword:00000001
; Установка активных часов: 09:00 - 23:00 (17 в hex = 23 в dec)
"ActiveHoursStart"=dword:00000009
"ActiveHoursEnd"=dword:00000017
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
; Включить автоматические обновления (0 = включено, 1 = отключено)
"NoAutoUpdate"=dword:00000000
; Вариант автоматизации: 4 = Автоматическая загрузка и установка по расписанию
"AUOptions"=dword:00000004
; Расписание установки: 0 = Каждый день
"ScheduledInstallDay"=dword:00000000
; Время установки по расписанию: 03:00 ночи
"ScheduledInstallTime"=dword:00000003
; Устанавливать еженедельно при наличии обновлений
"ScheduledInstallEveryWeek"=dword:00000001
; Исключить автоматическую перезагрузку, если в системе есть вошедшие пользователи
"NoAutoRebootWithLoggedOnUsers"=dword:00000001
; Отключение принудительного ребута по наступившему расписанию (требует реакции пользователя)
"AlwaysAutoRebootAtScheduledTime"=dword:00000000
; Не выполнять принудительный перезапуск до тех пор, пока пользователь не подтвердит уведомление
"OptionsForRebootNotifications"=dword:00000001
; =================================================================
; Настройка «Дедлайнов» (Защита от внезапных перезагрузок на новых сборках Win 10/11)
; =================================================================
; Включаем принудительное следование дедлайнам уведомлений, а не жестким ребутам
"ConfigureDeadlineNoAutoReboot"=dword:00000001
; Сколько дней дается пользователю на установку крупных обновлений (Feature Updates) до напоминания
"ConfigureDeadlineForFeatureUpdates"=dword:00000007
; Сколько дней дается на установку обновлений безопасности (Quality Updates) — обычно 2-7 дней
"ConfigureDeadlineForQualityUpdates"=dword:00000005
; Льготный период (Grace Period) — сколько дней система ждет ПОСЛЕ дедлайна, прежде чем
; начать настойчиво просить перезагрузку (но все еще в рамках Активных Часов!)
"ConfigureDeadlineGracePeriod"=dword:00000002
В целом там все написано, но уточним одну деталь:
"NoAutoRebootWithLoggedOnUsers"=dword:00000001
Используйте по собственному усмотрению, в ряде случаев разумнее поставить там
dword:00000000, что наоборот обеспечит автоматическую перезагрузку за пределами рабочего времени. Также учтите, что современные системы игнорируют эту опцию, если обновление помечено как «критическое» или «безопасность», для предотвращения спонтанной перезагрузки в этом случае как раз и добавлен блок «дедлайнов».
🤝19👍13❤1
Как убрать это окно?
Все просто, но не все ищут простые пути. Открываем приложение Параметры, переходим в Система → Уведомления и прокручиваем в самый низ до пункта Дополнительные параметры, затем просто снимаем галочку Предложить способы завершения настройки этого устройства для наиболее эффективного использования Windows.
Заодно можно и советы с подсказками выключить, чтобы не надоедали.
Либо, если надо быстро и массово, через правку реестра, проще всего это сделать при помощи команды PowerShell:
Но, в отличие от первого способа, для того чтобы изменения вступили в силу вам придется перезагрузить компьютер или выйти и повторно войти в систему.
Все просто, но не все ищут простые пути. Открываем приложение Параметры, переходим в Система → Уведомления и прокручиваем в самый низ до пункта Дополнительные параметры, затем просто снимаем галочку Предложить способы завершения настройки этого устройства для наиболее эффективного использования Windows.
Заодно можно и советы с подсказками выключить, чтобы не надоедали.
Либо, если надо быстро и массово, через правку реестра, проще всего это сделать при помощи команды PowerShell:
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\UserProfileEngagement" -Name "ScoobeSystemSettingEnabled" -PropertyType DWord -Value 0 -Force
Но, в отличие от первого способа, для того чтобы изменения вступили в силу вам придется перезагрузить компьютер или выйти и повторно войти в систему.
10👍34🔥7❤2🤮1
Новое меню Пуск в Windows 11
Меню Пуск в Windows 11 сложно назвать удачным, и оно вызывало у пользователей множество нареканий. Особенно своей практически полной «деревянностью», которая после отличного и кастомизируемого меню Windows 10 воспринималась особенно остро.
В Windows 10 была реализована концепция доступа в один клик. Справа – плитки, слева – список установленных программ. Никаких лишних переходов. В Windows 11 установленные приложения были вынесены на отдельный экран и для доступа к ним требовался дополнительный клик.
А ценное место первого экрана занимал совершенно бестолковый и даже вредный блок Рекомендуем, который фактически выполнял роль списка последних открытых файлов. При это отключить его не было никакой возможности.
В следующих релизах Пуск немного причесали, но ничего кардинально в нем не поменялось, и пользователи фактически смирились с таким положением дел. Нравится, не нравится – а жить с этим придется.
И вот совершенно неожиданно в мае 2026 года для пользователей выпусков 24H2 и 25H2 было выпушено обновление с существенно переработанным меню Пуск. Нет, революции не случилось, но эволюция произошла достаточно существенная.
Microsoft вернулась к концепции одного клика и разместила список установленных программ снова на первом экране, в нижней части меню Пуск.
По умолчанию они разбиты по категориям, задумка в целом не плохая. Все иконки в категориях кликабельны, вы можете сразу запустить нужную программу. Но сетка категории 2*2 и если в ней более четырех приложений, то остальные группируются на нижней правой позиции.
После клика по группе появляется всплывающее окно, которое может содержать свои группы. Но, как всегда, пользователя лишили возможностью управлять группировкой, составом групп и порядком в них.
В результате первые места в группах могут занимать совсем не нужные вам приложения, а за нужными вам придется разворачивать группировки. Хотя логично бы было дать пользователю самому настроить порядок в группах.
Про возможность создавать собственные группы я промолчу. Хотя в мобильных ОС, откуда явно эта технология позаимствована, пользователь может настраивать интерфейс самостоятельно.
Но не все так плохо, для любителей классики предусмотрены варианты отображения списком или сеткой.
Также, наконец, можно просто взять и выключить блок рекомендаций. В этом случае меню Пуск становится более-менее удобным. Сверху блок закрепленных приложений, внизу список установленных программ.
Не сказать, что стало совсем хорошо, но значительно лучше чем было, похоже, что разработчики все таки учли некоторые свои ошибки или нас готовят к выпуску чего-то нового (а может и хорошо забытого старого).
Меню Пуск в Windows 11 сложно назвать удачным, и оно вызывало у пользователей множество нареканий. Особенно своей практически полной «деревянностью», которая после отличного и кастомизируемого меню Windows 10 воспринималась особенно остро.
В Windows 10 была реализована концепция доступа в один клик. Справа – плитки, слева – список установленных программ. Никаких лишних переходов. В Windows 11 установленные приложения были вынесены на отдельный экран и для доступа к ним требовался дополнительный клик.
А ценное место первого экрана занимал совершенно бестолковый и даже вредный блок Рекомендуем, который фактически выполнял роль списка последних открытых файлов. При это отключить его не было никакой возможности.
В следующих релизах Пуск немного причесали, но ничего кардинально в нем не поменялось, и пользователи фактически смирились с таким положением дел. Нравится, не нравится – а жить с этим придется.
И вот совершенно неожиданно в мае 2026 года для пользователей выпусков 24H2 и 25H2 было выпушено обновление с существенно переработанным меню Пуск. Нет, революции не случилось, но эволюция произошла достаточно существенная.
Microsoft вернулась к концепции одного клика и разместила список установленных программ снова на первом экране, в нижней части меню Пуск.
По умолчанию они разбиты по категориям, задумка в целом не плохая. Все иконки в категориях кликабельны, вы можете сразу запустить нужную программу. Но сетка категории 2*2 и если в ней более четырех приложений, то остальные группируются на нижней правой позиции.
После клика по группе появляется всплывающее окно, которое может содержать свои группы. Но, как всегда, пользователя лишили возможностью управлять группировкой, составом групп и порядком в них.
В результате первые места в группах могут занимать совсем не нужные вам приложения, а за нужными вам придется разворачивать группировки. Хотя логично бы было дать пользователю самому настроить порядок в группах.
Про возможность создавать собственные группы я промолчу. Хотя в мобильных ОС, откуда явно эта технология позаимствована, пользователь может настраивать интерфейс самостоятельно.
Но не все так плохо, для любителей классики предусмотрены варианты отображения списком или сеткой.
Также, наконец, можно просто взять и выключить блок рекомендаций. В этом случае меню Пуск становится более-менее удобным. Сверху блок закрепленных приложений, внизу список установленных программ.
Не сказать, что стало совсем хорошо, но значительно лучше чем было, похоже, что разработчики все таки учли некоторые свои ошибки или нас готовят к выпуску чего-то нового (а может и хорошо забытого старого).
👍11🤔7😁1