
Приготовьте этот рецепт освежающего андалузского гаспачо, если у вас есть спелые и сочные помидоры. Ешьте (или потягивайте) его всё лето! Читать

Приготовьте этот рецепт освежающего андалузского гаспачо, если у вас есть спелые и сочные помидоры. Ешьте (или потягивайте) его всё лето! Читать

LibreELEC — некоммерческий форк OpenELEC.
Недавно было объявлено выпуск новой версии LibreELEC 10.0.4, который приносит Kodi (Matrix) 19.5, и, несмотря на небольшой скачок версии, новая версия центра распространения мультимедиа LibreELEC вносит некоторые изменения, о которых стоит упомянуть.
Для тех, кто не знает LibreELEC, они должны знать, что разворачивается как раздача для создания домашних кинотеатров и это форк OpenELEC где пользовательский интерфейс основан на медиацентре Kodi.
SSH – это еще один пример древней технологии, которая широко используется и сегодня. Вполне возможно, что освоение пары трюков с SSH в долгосрочной перспективе более выгодно, чем освоение дюжины инструментов Cloud Native, которым суждено устареть в следующем квартале.
Одна из моих любимых особенностей этой технологии – туннели SSH. Не имея ничего, кроме стандартных инструментов, и часто используя всего одну команду, вы можете добиться следующего:
И многое другое
Но несмотря на то, что я ежедневно использую SSH-туннели, мне всегда требуется время, чтобы найти нужную команду. Должен ли это быть локальный или удаленный туннель? Какие должны быть флаги? Должен ли это быть локальный_порт:удаленный_порт или наоборот? Итак, я решил наконец разобраться с этим, и в результате получилась серия лабораторных работ и наглядная шпаргалка.

Туннели SSH – это соединение хостов по сети, поэтому в каждой из приведенных ниже лабораторных работ, как ожидается, будет задействовано несколько “машин”. Однако мне лень создавать полноценные экземпляры, особенно когда вместо них можно использовать контейнеры. Поэтому в итоге я использовал только одну виртуальную машину vagrant с установленным на ней Docker.
Теоретически, подойдет любая Linux-машина с установленным на ней Docker Engine. Однако запустить приведенные ниже примеры как есть с помощью Docker Desktop не удастся, поскольку предполагается возможность доступа к контейнерам машин по их IP-адресам.
В качестве альтернативы, лабораторные работы можно выполнить с помощью Lima (QEMU + nerdctl + containerd + BuildKit), но не забудьте сначала выполнить limactl shell bash.
Каждый пример требует наличия на хосте действующей пары ключей без парольной фразы, которая затем монтируется в контейнеры для упрощения управления доступом. Если у вас нет такой пары, сгенерировать ее можно просто с помощью ssh-keygenна хосте.
Важно: демоны SSH в контейнерах здесь предназначены исключительно для образовательных целей — контейнеры в этом посте предназначены для представления полноценных «машин» с SSH-клиентами и серверами на них. Имейте в виду, что использование SSH в реальных контейнерах редко бывает хорошей идеей!
Начнем с того, что я использую чаще всего. Часто бывает, что есть служба, прослушивающая localhost или частный интерфейс машины, к которому я могу подключиться только по SSH через его публичный IP. И мне крайне необходимо получить доступ к этому порту извне. Несколько типичных примеров:
Все вышеперечисленные случаи использования могут быть решены с помощью одной команды ssh:
ssh -L [local_addr:]local_port:remote_addr:remote_port [user@]sshd_addr
Флаг -L указывает на то, что мы запускаем локальную проброску портов. На самом деле это означает следующее:
local_port (скорее всего, на localhost, но это зависит от ситуации – проверьте настройки GatewayPorts).
remote_private_addr:remote_port на машине, к которой вы подключились по SSH.
Вот как это выглядит на схеме:

Профессиональный совет: Используйте ssh -f -N -L для запуска сеанса переадресации портов в фоновом режиме.
Лабораторная работа воспроизводит настройку из приведенной выше схемы. Во-первых, нам нужно подготовить сервер – машину с демоном SSH и простым веб-сервисом, прослушивающим 127.0.0.1:80:
$ docker buildx build -t server:latest -<<'EOD'
# syntax=docker/dockerfile:1
FROM alpine:3
# Install the dependencies:
RUN apk add --no-cache openssh-server curl python3
RUN mkdir /root/.ssh && chmod 0700 /root/.ssh && ssh-keygen -A
# Prepare the entrypoint that starts the daemons:
COPY --chmod=755 <<'EOF' /entrypoint.sh
#!/bin/sh
set -euo pipefail
for file in /tmp/ssh/*.pub; do
cat ${file} >> /root/.ssh/authorized_keys
done
chmod 600 /root/.ssh/authorized_keys
# Minimal config for the SSH server:
sed -i '/AllowTcpForwarding/d' /etc/ssh/sshd_config
sed -i '/PermitOpen/d' /etc/ssh/sshd_config
/usr/sbin/sshd -e -D &
python3 -m http.server --bind 127.0.0.1 ${PORT} &
sleep infinity
EOF
# Run it:
CMD ["/entrypoint.sh"]
EOD
Запускаем сервер и записываем его IP-адрес:
$ docker run -d --rm
-e PORT=80
-v $HOME/.ssh:/tmp/ssh
--name server
server:latest
SERVER_IP=$(
docker inspect
-f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
server
)
Поскольку веб-служба прослушивает localhost, она не будет доступна извне (т.е. из хост-системы в данном конкретном случае):
$ curl ${SERVER_IP}
curl: (7) Failed to connect to 172.17.0.2 port 80: Connection refused
Но изнутри “сервера” работает просто отлично:
$ ssh -o StrictHostKeyChecking=no root@${SERVER_IP}
7b3e49181769:$# curl localhost
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
...
И вот в чем хитрость: привяжите localhost:80 сервера к localhost:8080 хоста, используя локальную переадресацию портов:
$ ssh -o StrictHostKeyChecking=no -f -N -L 8080:localhost:80 root@${SERVER_IP}
Теперь вы должны иметь возможность получить доступ к веб-службе на локальном порту хост-системы:
$ curl localhost:8080
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
...
Несколько более многословный (но более явный и гибкий) способ достижения той же цели – использование формыlocal_addr:local_port:remote_addr:remote_port form:
$ ssh -o StrictHostKeyChecking=no -f -N -L
localhost:8080:localhost:80
root@${SERVER_IP}
Это может быть неочевидно на первый взгляд, но команда ssh -L позволяет перенаправить локальный порт на удаленный порт на любой машине, а не только на самом SSH-сервере. Обратите внимание, что remote_addr и sshd_addr могут иметь одинаковое значение, а могут и не иметь:
ssh -L [local_addr:]local_port:remote_addr:remote_port [user@]sshd_addr
Не уверен, насколько правомерно здесь использование термина bastion host , но именно так я представляю себе этот сценарий:

Я часто использую этот трюк для вызова конечных точек, которые доступны с хоста bastion, но не с моего ноутбука (например, использование экземпляра EC2 с частным и публичным интерфейсами для подключения к кластеру OpenSearch, развернутому полностью в VPC).
И снова лабораторная работа воспроизводит установку из приведенной выше схемы. Сначала нам нужно подготовить хост бастиона – машину, на которой установлен только демон SSH:
$ docker buildx build -t bastion:latest -<<'EOD'
# syntax=docker/dockerfile:1
FROM alpine:3
# Install the dependencies:
RUN apk add --no-cache openssh-server
RUN mkdir /root/.ssh && chmod 0700 /root/.ssh && ssh-keygen -A
# Prepare the entrypoint that starts the SSH daemon:
COPY --chmod=755 <<'EOF' /entrypoint.sh
#!/bin/sh
set -euo pipefail
for file in /tmp/ssh/*.pub; do
cat ${file} >> /root/.ssh/authorized_keys
done
chmod 600 /root/.ssh/authorized_keys
# Minimal config for the SSH server:
sed -i '/AllowTcpForwarding/d' /etc/ssh/sshd_config
sed -i '/PermitOpen/d' /etc/ssh/sshd_config
/usr/sbin/sshd -e -D &
sleep infinity
EOF
# Run it:
CMD ["/entrypoint.sh"]
EOD
Запускаем бастионный хост и записываем его IP:
$ docker run -d --rm
-v $HOME/.ssh:/tmp/ssh
--name bastion
bastion:latest
BASTION_IP=$(
docker inspect
-f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
bastion
)
Теперь запускаем целевую веб-службу на отдельной “машине”:
$ docker run -d --rm
--name server
python:3-alpine
python3 -m http.server 80
SERVER_IP=$(
docker inspect
-f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
server
)
Представим, что вызов curl ${SERVER_IP} непосредственно с хоста по какой-то причине невозможен (например, как если бы не было маршрута от хоста к этому IP-адресу). Значит, нам нужно запустить переадресацию портов:
$ ssh -o StrictHostKeyChecking=no -f -N -L 8080:${SERVER_IP}:80 root@${BASTION_IP}
Обратите внимание, что переменные SERVER_IP и BASTION_IP имеют разные значения в приведенной выше команде.
Проверяем, что все работает:
$ curl localhost:8080
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
...
Другой популярный (но скорее обратный) сценарий – когда вы хотите на время открыть локальную службу для внешнего мира. Разумеется, для этого вам понадобится публичный сервер входящего шлюза. Но не бойтесь! В качестве такого шлюза можно использовать любой сервер с публичным доступом, на котором установлен демон SSH:
ssh -R [remote_addr:]remote_port:local_addr:local_port [user@]gateway_addr
Приведенная выше команда выглядит не сложнее, чем ее аналог ssh -L. Но есть один подводный камень…
По умолчанию вышеуказанный SSH-туннель позволяет использовать в качестве удаленного адреса только localhost шлюза. Другими словами, ваш локальный порт станет доступным только изнутри самого сервера шлюза, и, скорее всего, это не то, что вам действительно нужно. Например, я обычно хочу использовать публичный адрес шлюза в качестве удаленного адреса, чтобы открыть доступ к моим локальным службам в публичный интернет. Для этого SSH-сервер должен быть настроен с параметром GatewayPorts yes.
Вот для чего можно использовать удаленное перенаправление портов:
Вот как удаленное перенаправление портов выглядит на схеме:

Профессиональный совет: Используйте ssh -f -N -R для запуска сеанса переадресации портов в фоновом режиме.
Лабораторная работа воспроизводит установку, показанную на схеме выше. Сначала нам нужно подготовить “dev machine” – компьютер с SSH-клиентом и локальным веб-сервером:
$ docker buildx build -t devel:latest -<<'EOD'
# syntax=docker/dockerfile:1
FROM alpine:3
# Install dependencies:
RUN apk add --no-cache openssh-client curl python3
RUN mkdir /root/.ssh && chmod 0700 /root/.ssh
# Prepare the entrypoint that starts the web service:
COPY --chmod=755 <<'EOF' /entrypoint.sh
#!/bin/sh
set -euo pipefail
cp /tmp/ssh/* /root/.ssh
chmod 600 /root/.ssh/*
python3 -m http.server --bind 127.0.0.1 ${PORT} &
sleep infinity
EOF
# Run it:
CMD ["/entrypoint.sh"]
EOD
Запуск виртуальной машины:
$ docker run -d --rm
-e PORT=80
-v $HOME/.ssh:/tmp/ssh
--name devel
devel:latest
Подготовка сервера шлюза – простой SSH-сервер с GatewayPorts, установленным на yes в sshd_config:
$ docker buildx build -t gateway:latest -<<'EOD'
# syntax=docker/dockerfile:1
FROM alpine:3
# Install the dependencies:
RUN apk add --no-cache openssh-server
RUN mkdir /root/.ssh && chmod 0700 /root/.ssh && ssh-keygen -A
# Prepare the entrypoint that starts the SSH server:
COPY --chmod=755 <<'EOF' /entrypoint.sh
#!/bin/sh
set -euo pipefail
for file in /tmp/ssh/*.pub; do
cat ${file} >> /root/.ssh/authorized_keys
done
chmod 600 /root/.ssh/authorized_keys
sed -i '/AllowTcpForwarding/d' /etc/ssh/sshd_config
sed -i '/PermitOpen/d' /etc/ssh/sshd_config
sed -i '/GatewayPorts/d' /etc/ssh/sshd_config
echo 'GatewayPorts yes' >> /etc/ssh/sshd_config
/usr/sbin/sshd -e -D &
sleep infinity
EOF
# Run it:
CMD ["/entrypoint.sh"]
EOD
Запуск сервера шлюза и запись его IP-адреса:
$ docker run -d --rm
-v $HOME/.ssh:/tmp/ssh
--name gateway
gateway:latest
GATEWAY_IP=$(
docker inspect
-f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
gateway
)
Теперь изнутри dev-машины запустите удаленное перенаправление портов:
$ docker exec -it -e GATEWAY_IP=${GATEWAY_IP} devel sh
/ $# ssh -o StrictHostKeyChecking=no -f -N -R 0.0.0.0:8080:localhost:80 root@${GATEWAY_IP}
/ $# exit # or detach with ctrl-p, ctrl-q
И проверьте, что локальный порт машины dev стал открытым на публичном интерфейсе шлюза (с хост-системы):
$ curl ${GATEWAY_IP}:8080
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
...
Подобно локальной переадресации портов, удаленная переадресация портов имеет свой собственный режим бастионного хоста. Но на этот раз в роли бастиона выступает машина с SSH-клиентом (например, ваш ноутбук dev). В частности, он позволяет открывать порты из домашней (или частной) сети, к которой имеет доступ ваш ноутбук, во внешний мир через входящий шлюз:
ssh -R [remote_addr:]remote_port:local_addr:local_port [user@]gateway_addr
Выглядит почти так же, как и простой удаленный SSH-туннель, но пара local_addr:local_port становится адресом устройства в домашней сети. Вот как это можно изобразить на схеме:

Поскольку я обычно использую свой ноутбук в качестве тонкого клиента, а реальная разработка происходит на домашнем сервере, я полагаюсь на такую удаленную переадресацию портов, когда мне нужно выставить службу разработчика с домашнего сервера в публичный Интернет, и единственной машиной с доступом к шлюзу является мой ноутбук.
Как обычно, лаборатория воспроизводит установку из приведенной выше схемы. Сначала нам нужно подготовить “машину dev”:
$ docker buildx build -t devel:latest -<<'EOD'
# syntax=docker/dockerfile:1
FROM alpine:3
# Install the dependencies:
RUN apk add --no-cache openssh-client
RUN mkdir /root/.ssh && chmod 0700 /root/.ssh
# This time we run nothing (at first):
COPY --chmod=755 <<'EOF' /entrypoint.sh
#!/bin/sh
set -euo pipefail
cp /tmp/ssh/* /root/.ssh
chmod 600 /root/.ssh/*
sleep infinity
EOF
# Run it:
CMD ["/entrypoint.sh"]
EOD
Запуск “dev machine”:
$ docker run -d --rm
-v $HOME/.ssh:/tmp/ssh
--name devel
devel:latest
Запуск частного dev-сервера с использованием отдельной “машины” и указанием ее IP-адреса:
$ docker run -d --rm
--name server
python:3-alpine
python3 -m http.server 80
SERVER_IP=$(
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
server
)
Подготовка сервера входящего шлюза:
$ docker buildx build -t gateway:latest -<<'EOD'
# syntax=docker/dockerfile:1
FROM alpine:3
# Install the dependencies:
RUN apk add --no-cache openssh-server
RUN mkdir /root/.ssh && chmod 0700 /root/.ssh && ssh-keygen -A
# Prepare the entrypoint that starts the SSH daemon:
COPY --chmod=755 <<'EOF' /entrypoint.sh
#!/bin/sh
set -euo pipefail
for file in /tmp/ssh/*.pub; do
cat ${file} >> /root/.ssh/authorized_keys
done
chmod 600 /root/.ssh/authorized_keys
sed -i '/AllowTcpForwarding/d' /etc/ssh/sshd_config
sed -i '/PermitOpen/d' /etc/ssh/sshd_config
sed -i '/GatewayPorts/d' /etc/ssh/sshd_config
echo 'GatewayPorts yes' >> /etc/ssh/sshd_config
/usr/sbin/sshd -e -D &
sleep infinity
EOF
# Run it:
CMD ["/entrypoint.sh"]
EOD
И запустить его:
$ docker run -d --rm
-v $HOME/.ssh:/tmp/ssh
--name gateway
gateway:latest
GATEWAY_IP=$(
docker inspect
-f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
gateway
)
Теперь, находясь внутри ” dev machine”, запустите удаленный проброс портов SERVER-GATEWAY:
$ docker exec -it -e GATEWAY_IP=${GATEWAY_IP} -e SERVER_IP=${SERVER_IP} devel sh
/ $# ssh -o StrictHostKeyChecking=no -f -N -R 0.0.0.0:8080:${SERVER_IP}:80 root@${GATEWAY_IP}
/ $# exit # or detach with ctrl-p, ctrl-q
Наконец, проверьте, что сервер dev стал доступен на публичном интерфейсе шлюза (из хост-системы):
$ curl ${GATEWAY_IP}:8080
<!DOCTYPE HTML>
<html lang="en">
<head>
...
После выполнения всех этих лабораторных работ и рисунков я заметил следующее:
ssh -L) подразумевает, что именно клиент sshначинает прослушивать новый порт.
ssh -R) подразумевает, что именно сервер sshd начинает прослушивать дополнительный порт.
Источник: https://itmozg.ru/vizualnoe-rukovodstvo-po-tunneljam-ssh/

Google Chrome — веб-браузер с закрытым исходным кодом, разработанный Google.
Несколько дней назад анонсирован выпуск новой версии из популярного веб-браузера Google Хром 109, который исправляет различные ошибки и вводит некоторые новые функции. Эта новая версия позволяет, в частности, Google Chrome Я устраняю в общей сложности 17 недостатков безопасности.
Большинство недостатков безопасности, о которых сообщается извне, относятся к недостаткам средней и низкой степени серьезности, и только две из них оцениваются как «высокие степени серьезности». К ним относятся проблема использования после освобождения в обзорном режиме (CVE-2023-0128) и ошибка переполнения буфера кучи в сетевой службе (CVE-2023-0129).
В этой статье объясняются шаги, которые вы можете предпринять для инициализации новых дисков в Windows 11.
Если вы добавили новый диск на свой компьютер, и он не отображается в проводнике, вам может потребоваться добавить букву диска или инициализировать его перед использованием.
Вы можете инициализировать новый диск, который не отформатирован. Когда вы это сделаете, Windows сотрет или удалит все данные на диске и подготовит его к использованию. После инициализации вы можете отформатировать его и добавить букву диска перед добавлением данных на диск.
Однако, если вы вставляете диск, на котором уже есть данные, и вы не видите его в проводнике, вам не следует инициализировать или форматировать его. Устраните неполадки с диском, чтобы не потерять данные на нем.
Как описано выше, если вы добавили новый диск на свой компьютер, и он не отображается в проводнике, вам может потребоваться добавить букву диска или инициализировать его перед использованием.
Ниже описано, как это сделать.
Сначала откройте приложение «Параметры Windows».
Вы можете сделать это, нажав кнопку меню «Пуск» и выбрав приложение «Настройки». Кроме того, используйте сочетания клавиш (клавиша Windows+I), чтобы запустить приложение «Настройки».

Когда откроется приложение «Настройки», нажмите кнопку «Система» слева.

Справа выберите плитку Хранилище, чтобы развернуть ее.

На панели «Система» -> «Параметры хранилища» в разделе «Управление хранилищем» выберите плитку «Дополнительные параметры хранилища», чтобы развернуть его.

На плитке Система -> Хранилище -> Дополнительные параметры хранилища выберите плитку Диски и тома в разделе Дополнительные параметры хранилища, чтобы развернуть.

На панели настроек Система -> Хранилище -> Диски и тома Windows отобразит список всех дисков, подключенных к вашему компьютеру.
Новые диски будут отмечены как «Не инициализированы».
Чтобы инициализировать новый диск, нажмите кнопку «Инициализировать», как показано ниже.

Во всплывающем окне «Инициализировать диск» выберите стиль раздела, который будет использоваться для диска, и нажмите «Инициализировать», чтобы начать.
GPT (таблица разделов GUID). Большинство ПК используют тип диска с таблицей разделов GUID (GPT) для жестких дисков и твердотельных накопителей. GPT более надежен и позволяет использовать тома размером более 2 ТБ.
MBR (основная загрузочная запись) — более старый тип диска с основной загрузочной записью (MBR) используется 32-разрядными ПК, старыми ПК и съемными дисками, такими как карты памяти.

Когда вы инициализируете диск, его статус должен измениться на Unallocated. Windows инициализировала его и готова к созданию раздела.
Нажмите кнопку «Создать том», чтобы создать разделы на диске.

В следующем окне введите метку (то, что вы хотите назвать разделом), выберите букву диска, файловую систему и нажмите кнопку «Формат».

После форматирования диск должен появиться в проводнике для использования.

Те же действия, описанные выше, можно выполнить с помощью старого инструмента управления дисками Windows.
Используйте приведенные ниже шаги для инициализации диска с помощью инструмента управления дисками Windows.
Сначала откройте «Управление дисками» с правами администратора.
Для этого в поле поиска на панели задач введите Управление дисками, выберите и удерживайте (или щелкните правой кнопкой мыши) Управление дисками, затем выберите Запуск от имени администратора > Да.

В разделе «Управление дисками» щелкните правой кнопкой мыши диск, который хотите инициализировать, и выберите «Инициализировать диск». Если диск указан как Offline, сначала щелкните его правой кнопкой мыши и выберите Online.

После инициализации диска щелкните правой кнопкой мыши нераспределенное пространство на диске и выберите «Новый простой том».
Выполните шаги, аналогичные приведенным выше, и отформатируйте диск.
Вывод:
В этом посте показано, как инициализировать новый диск в Windows 11. Если вы обнаружите какую-либо ошибку выше или вам есть что добавить, воспользуйтесь формой комментариев ниже.
В этой статье описаны шаги, которые можно предпринять для перемещения жесткого диска с одного компьютера на другой в Windows 11.
Windows позволяет взять диск с одного компьютера и перенести его на другой. Однако диск должен быть дополнительным диском, то есть он не может быть диском операционной системы или операционной системы.
Если диски внешние, их можно смело отсоединять от компьютера. Если диски внутренние, выключите компьютер и извлеките их физически.
Кроме того, когда вы перемещаете диск на другой компьютер, диск с базовыми томами получает следующую доступную букву диска на этом компьютере.
Как описано выше, Windows позволяет взять диск с одного компьютера и перенести его на другой. Если диск с данными подключен к компьютеру и вы хотите перенести его на другой компьютер, шаги, приведенные ниже, покажут вам, как это сделать.
Перед отключением диска от компьютера убедитесь, что диск исправен. Если нет, отремонтируйте его перед отключением.
Сначала откройте приложение «Параметры Windows».
Вы можете сделать это, нажав кнопку меню «Пуск» и выбрав приложение «Настройки». Кроме того, используйте сочетания клавиш (клавиша Windows+I), чтобы запустить приложение «Настройки».

Когда приложение откроется, щелкните плитку Система -> Хранилище, чтобы развернуть ее.

На плитке Система -> Хранилище разверните Дополнительные параметры хранилища, затем выберите плитку Диски и тома, чтобы развернуть ее.

На панели настроек дисков и томов найдите диск, который вы хотите переместить, и убедитесь, что он исправен. Затем нажмите кнопку «Свойства» диска.

На панели настроек «Свойства» диска в разделе «Состояние» нажмите кнопку «Отключить». Это переведет диск в автономный режим, поэтому на нем не будет выполняться никаких действий.

Теперь, когда диск отключен, откройте Диспетчер устройств, чтобы удалить диск, который вы хотите перенести. Для этого нажмите кнопку меню «Пуск» и найдите «Диспетчер устройств», затем выберите его, чтобы открыть.

Когда откроется приложение «Диспетчер устройств», в списке устройств дважды щелкните «Диски», чтобы развернуть его. Затем выберите диск, который вы хотите перенести, щелкните его правой кнопкой мыши и выберите «Удалить устройство».

В диалоговом окне «Подтверждение удаления устройства» нажмите «ОК».
Если диски, которые вы хотите переместить, являются динамическими дисками, в разделе «Управление дисками» щелкните правой кнопкой мыши диски, которые вы хотите переместить, и выберите «Удалить диск».
Как только вы достанете диск со старого компьютера, перенесите его на новый и установите. Если диски внешние, подключите их к компьютеру. Если диски внутренние, убедитесь, что компьютер выключен, а затем физически установите диски на этот компьютер.
Включите компьютер, и Windows, скорее всего, определит и установит диск. Если нет, выполните следующие действия для установки.
На новом компьютере откройте «Управление дисками».
Нажмите «Действие», а затем нажмите «Повторно сканировать диски».

Щелкните правой кнопкой мыши любой диск с пометкой «Иностранный». Нажмите «Импорт чужих дисков» и следуйте инструкциям на экране.
https://www.youtube.com/watch?v=2xhsTd3L1vQ
Ссылка:
Вывод:
В этом посте показано, как переместить диск с одного компьютера на другой в Windows 11. Если вы обнаружите какую-либо ошибку выше или вам есть что добавить, воспользуйтесь формой комментариев ниже.