Техника
12 Апреля 2021 15:51 12 Апр 2021 15:51 |
В процессорах AMD в серверах Lenovo обнаружилась жесткая привязка к «железу» именно этого производителя – CPU, побывавший в сервере Lenovo, нельзя будет использовать в технике других производителей. «Отвязать» такой процессор не получится, В будущем подобное может коснуться еще и чипов AMD для настольных ПК и рабочих станций, а также всего вторичного рынка компьютерной техники.
Компания Lenovo начала «привязывать» процессоры AMD Epyc к своим серверам, чтобы их владельцы не могли потом использовать их в составе систем других производителей. Об этом сообщили специалисты портала ServeTheHome, указав, что эту «идею» она подсмотрела у Dell.
И Dell, Lenovo входят в топ-5 крупнейших во всем мире производителей серверов. Так, согласно статистике компании IDC за III квартал 2020 г.
, Dell находилась на первом месте с долей рынка 16,65%, а Lenovo занимала четвертую строчку с результатом 5,88%, пропустив вперед Inspur (9,37%) и HPE (15,94%).
При этом Lenovo за год укрепила свои позиции (5,39% в III квартале 2019 г.), а Dell, напротив, лишилась части рынка (17,12% годом ранее).
Блокировка реализуется за счет технологии AMD Platform Secure Boot (PSB) в серверных процессорах AMD Epyc. По умолчанию все процессоры AMD не содержат никаких привязок к «железу» конкретного производителя, но при первом же запуске, если вендор решит использовать возможность подобной блокировки, в них заносится информация о ключе подписи прошивки BIOS/UEFI OEM-производителя.
Владельцев серверов Lenovo на AMD ждет сюрприз
С одной стороны, подобная схема использования PSB позволяет создать программно-аппаратную систему доверенной загрузки и позволяет свести стороннее вмешательство в сервер к минимуму. С другой стороны, заблокированные процессоры AMD больше никогда нельзя будет запустить в системах других производителей.
Другими словами, владелец сервера, решивший установить в него новый CPU, гарантированно столкнется с трудностями в реализации старого процессора – ему придется искать владельца полностью совместимой системы. В ситуации, когда материнская плата сервера выходит из строя, владельцу придется заказывать новую у того же вендора, если он хочет продолжить пользоваться старым процессором.
Сотрудники ServeTheHome назвали такие чипы электронным мусором (eWaste).
Проблема гораздо серьезнее
Специалисты ServeTheHome считают, что ситуация с блокировкой процессоров AMD под системы конкретных вендоров будет усугубляться, и что со временем все больше производителей будут пользоваться этой возможностью. Кроме того, даже если владелец сервера просто ради эксперимента установит в него новый чип AMD и нажмет кнопку питания, то после этого его тоже нельзя будет использовать в других серверах.
Процессорами Epyc все может не ограничиться
Эта практика может негативно отразиться на вторичном рынке серверов и попутно зацепить другие сегменты компьютерного рынка.
Портал Aroged пишет, что свою технологию PSB компания AMD встраивает далеко не только в серверные чипы Epyc, но также в CPU Threadripper Pro для рабочих станций и Ryzen Pro поколений 4000 и 5000 (Renoir и Cezanne соответственно), использующиеся в десктопах. На момент публикации материала информации о реализации PSB в этих чипах производителями компьютеров информации не было.
Все началось с Dell
Первопроходцем по части блокировки процессоров под свои серверы стала компания Dell. Еще в 2018 г.
специалисты ServeTheHome тестировали стоечный сервер Dell EMC PowerEdge R7415, рассчитанный на процессоры AMD Epyc серии 7000, (в частности, на модели 7601, 7551P, 7501, 7451, 7401P, 7351P, 7301, 7281 и 7251).
Им достался образец младшим CPU Epyc 7251, который они затем попытались запустить в сервере другого поставщика, но у них ничего не вышло.
Детальный разбор принципов AMD PSB
По их словам, они обратились с запросом в Dell, и сотрудники компании сказали им, что это сделано ради их безопасности. В сентябре 2020 г. эксперты ServeTheHome опубликовали масштабный разбор того, как Dell привязывает чипы AMD к своему железу, после чего с ними связались представители HPE – компании, находящейся на втором месте по объемам поставок серверов мире.
4 уровня управления: как происходит цифровая трансформация в экосистемной компании
Цифровизация
Они заявили, что в серверах HPE тоже применяется технология построения программно-аппаратной системы доверенной загрузки, но она работает совершенно по другому принципу, нежели в технике Dell.
Представители компании акцентировали внимание на том, что она тоже положительно влияет на безопасность сервера в целом, но при этом никак не запрещает пользователям использовать процессор из таких серверов в системах любых других вендоров.
Откуда у Lenovo свои серверы
Китайская компания Lenovo приступила к выпуску собственных серверов сравнительно недавно – в 2014 г. С нуля этот бизнес компания не открывала – как сообщал CNews, она выкупила у американской IBM соответствующее подразделение.
Сделка была подписана в январе 2014 г. и обошлась Lenovo в $2,3 млрд. $2 млрд из них она заплатила деньгами, $300 млн – своими акциями.
После закрытия сделки к ней перешло производство серверов линеек System x, BladeCenter, Flex System, NeXtScale и iDataPlex, сопутствующих коммутаторов, ПО и услуг.
После продажи бизнеса IBM продолжила выпускать мейнфреймы System z, серверы Power и Flex на архитектуре Power, системы хранения данных, решения PureApplication и PureData.
Для Lenovo и IBM это была вторая по счету сделка такого рода. За девять лет до нее, в декабре 2004 г., Lenovo приобрела у IBM ее компьютерный бизнес – подразделение, занимавшееся поставками ноутбуков и компьютеров.
По оценке аналитической компании Canalys, в IV квартале 2020 г. Lenovo была лидером в ПК-сегменте, занимая 25,6-процентную его долю.
Ближайшие конкуренты – это американские HP (21,2%), Dell (17,5%) и Apple (8%), а также тайваньская Acer (6,8%).
Эльяс Касми
Подписаться на новости Короткая ссылка
Привязка к железу
C0ffe1n дата: 11 марта 2009 года
сайт: http://z.alko-net.ru
Иногда в программах необходимо использовать возможность проверки типа носителя или его серийный номер. Причины могут быть разными от банального контроля устройств в системе до средств защит использующих привязку к железу. Сейчас я вам покажу как с помощью API реализовать эту простую задачу.
Нам понадобится всего 2 API — функции:
- GetDriveType — определяет и возвращает тип носителя;
- GetVolumeInformation — определяет информацию о носителе, среди которой содержится серийный номер.
Рассмотрим описание этих функций для С++ и Delphi. Первой будет функция GetDriveType, она очень простая и использует всего один параметр — указатель на том. Например «c:»,»a:» и т.д. Функция возвращает одно из следующих значений:
- DRIVE_UNKNOWN — 0 : диск неопределен/не существует
- DRIVE_NO_ROOT_DIR — 1 : неверный путь/ путь не указывает на том
- DRIVE_REMOVABLE — 2 : тип устройства определяется как съемный (дискета, флешка и т.д.)
- DRIVE_FIXED — 3 : тип устройства — фиксированный диск (жесткий диск)
- DRIVE_REMOTE — 4 : тип устройства — удаленный(сетевой) диск
- DRIVE_CDROM — 5 : это устройство CD-ROM
- DRIVE_RAMDISK — 6 : виртуальный диск, созданный в оперативной памяти
C/C++
UINT WINAPI GetDriveType(
LPCTSTR lpRootPathName //путь к диску
);
Delphi
function GetDriveType(
lpRootPathName: PChar //путь к диску
): UINT; stdcall;
Замечание: Если в качестве параметра указать для С/С++ NULL, а для Delphi — nil то тип устройства будет определяться для текущего диска (с которого была запущена программа).
А теперь взглянем на функцию GetVolumeInformation. Тоже достаточно простая функция, однако использует параметров значительно больше.
C/C++
BOOL WINAPI GetVolumeInformation(
LPCTSTR lpRootPathName, //путь к сетевому или локальному
// тому (пример: «MyServerMyShare» или «C:».
LPTSTR lpVolumeNameBuffer, //буфер — в котором будет храниться
// имя тома
DWORD nVolumeNameSize, //размер буфера
LPDWORD lpVolumeSerialNumber, //серийный номер тома
LPDWORD lpMaximumComponentLength, //размер тома
LPDWORD lpFileSystemFlags, //тип файловой системы
LPTSTR lpFileSystemNameBuffer, //название файловой системы
DWORD nFileSystemNameSize //размер буфера под название ФС
);
Delphi
function GetVolumeInformation(
lpRootPathName: PChar; //путь к сетевому или локальному
//тому (пример: «MyServerMyShare» или «C:».
lpVolumeNameBuffer: PChar; //буфер — в котором будет храниться
// имя тома
nVolumeNameSize: DWORD; //размер буфера
lpVolumeSerialNumber: PDWORD; //серийный номер тома
var lpMaximumComponentLength, lpFileSystemFlags: DWORD; //размер
// тома и тип файловой системы
lpFileSystemNameBuffer: PChar; //название файловой системы
nFileSystemNameSize: DWORD //размер буфера под название ФС
): BOOL; stdcall;
Замечание: Если в качестве первого параметра указать для С/С++ NULL, а для Delphi — nil то функция будет выполняется для текущего диска (с которого была запущена программа).
Ну а теперь собственно для пущего интересу приведу пример, как привязать программу к устройству. В данном примере будем привязывать программу к флешке. Смотрим пример:
C/C++
#include
#include
#include
#include
using namespace std;
int main() {
// Получаем тип носителя с которого запущена программа
unsigned int drive_type = GetDriveType( NULL );
char VolumeNameBuffer[100];
char FileSystemNameBuffer[100];
DWORD sz,fs;
unsigned long drive_sn;
GetVolumeInformationA(
NULL,
VolumeNameBuffer,
100,
&drive_sn,
sz,
fs,
FileSystemNameBuffer,
100
);
cout
Сброс привязки к комплектующим компьютера с помощью Sysprep
Друзья, привет. В этой статье поговорим о штатной утилите Windows Sysprep. Её работа до сих пор на страницах сайта рассматривалась только в контексте использования инструмента, участвующего в процессе создания своих дистрибутивов операционной системы. Но эту утилиту можно использовать и в других целях.
Что это за цели, и как в процессе их достижения применять Sysprep?Sysprep – утилита, присутствующая на борту Windows 7-10 – является средством отвязки операционной системы от драйверов комплектующих конкретного компьютера и отдельных профильных данных.Такая отвязка предусматривается преимущественно для подготовки эталонного образа Windows – состояния системы с внесёнными настройками и установленным софтом – к дальнейшему развёртыванию на множестве компьютерных устройств. Что всерьёз облегчает работу системщиков OEM-производителей и корпораций. Все те фирменные ноутбуки с предустановленными в среду Windows брендовыми надстройками и программным обеспечением, от которых попробуй ещё избавиться – это результат развёртывания на них операционной системы, эталонный образ которой создавался на базе чистого её дистрибутива и потом дорабатывался в режиме аудита. И в этом процессе на одном из этапов участвовала утилита Sysprep.Sysprep производит удаление из Windows драйверов комплектующих компьютера, и при следующем запуске система автоматически устанавливает новые драйверы для, соответственно, новой конфигурации оборудования. Утилита также обнуляет SID, проводит очистку системного журнала событий, удаляет содержимое системной папки «Temp», удаляет точки отката – в общем, зачищает следы своей работы на текущем устройстве, чтобы с новым запуском Windows начать работу по-новому. Как если бы операционная система была только что установлена. При необходимости Sysprep может до трёх раз сбросить активацию системы.Чтобы запустить утилиту, жмём Win+R, вписываем «Sysprep» и в открывшейся системной папке двойным кликом открываем EXE-шник.
Для каких целей можно использовать эту утилиту?Создание собственных сборок WindowsЕсли вы, друзья, хотите создать свою сборку Windows – со своими предустановленными программами, внедрёнными обновлениями, выполненной активацией, изменёнными настройками и т.п.
, вы будете использовать Sysprep перед захватом настроенного образа системы. А как создаются свои сборки Windows, этому у нас на сайте посвящён целый раздел статей.Замена важных компьютерных комплектующих типа материнской платы или процессора в системах Windows 8.1 или 10 обычно не влечёт за собой синий экран смерти.
В большей степени этому подвержена Windows 7. Но акцент на слове «обычно», ситуации могут быть разные. Лучше всё же в любой версии системы перед заменой материнки или процессора выключить Windows с предварительным запуском Sysprep. Её запуск отвяжет систему от текущих драйверов устройств (т.е. попросту удалит их).
И при следующем запуске компьютера драйверы установятся по-новому.
Этот способ поможет не только избежать возможного появления синего экрана смерти, но и предотвратит ещё одну проблему, которая может проявится не сразу, а через какое-то время работы компьютера в новой конфигурации – конфликт старого и нового драйвера заменённого устройства.
Запускаем Sysprep перед непосредственным выключением компьютера для замены в нём материнской платы или процессора. В окне утилиты выставляем действие «Переход в окно приветствия OOBE». В параметрах выключения выбираем «Завершение работы».
Если в процессе замены материнской платы или процессора Sysprep не использовалась, не беда, утилиту можно запустить в любой момент позднее. Если, конечно же, в этом есть необходимость — в работе Windows наблюдаются проблемы из-за того, что драйвер старого устройства конфликтует с драйвером нового. Запускаем Sysprep.
В её окне выбираем переход в окно OOBE, а в параметрах завершения – перезагрузку.Sysprep удалит драйвер старой материнки и процессора вместе с прочими драйверами. И, как и в предыдущем случае, при следующем запуске Windows они установятся по-новому. Это, кстати, универсальный способ решения проблем с драйверами. Его можно использовать и в других ситуациях – например, когда при сбое работы Windows или её некорректном обновлении до новой версии слетают драйверы устройств и потом не хотят устанавливаться. Sysprep может даже помочь в переустановке драйверов режима работы жёсткого диска IDE, AHCI, RAID, NVMe. Не уверен, что всегда, но в части случаев точно. Но вы можете попробовать: перед тем, как менять в BIOS режим работы жёсткого диска, сделайте сброс драйверов с помощью Sysprep.Перенос наработанной Windows на другой компьютерЧтобы можно было перенести свою наработанную Windows на другой компьютер, создатели ПО для резервного копирования в своих продуктах реализуют специальные технологии по отвязке драйверов комплектующих при восстановлении из бэкапа. Такие технологии есть, например, у бэкаперов Acronis и AOMEI – соответственно, Acronis Universal Restore и AOMEI Universal Restore. Есть такая технология также у EaseUS Todo Backup. Эти технологии, по сути, делают то же, что и Sysprep, только не перед захватом образа, а на этапе развёртывания Windows, т.е. восстановления её из бэкапа. Но тогда как Sysprep можно пользоваться совершенно бесплатно, она является частью Windows, технологии типа Universal Restore обычно поставляются в платных редакциях программ для резервного копирования. И если, к примеру, Acronis весь платный, то с помощью средств резервного копирования AOMEI или EaseUS и участия утилиты Sysprep совершенно бесплатно можем перенести свою рабочую Windows на другой компьютер. Ведь у программ AOMEI Backupper и EaseUS Todo Backup базовый функционал, куда входит обычное резервное копирование и восстановление Windows, бесплатный.Чтобы перенести наработанную Windows на другую конфигурацию железа, подготавливаем загрузочный носитель с программой для резервного копирования. Если вам, друзья, нравится программа EaseUS Todo Backup, вот статья, как создать загрузочную флешку и работать с неё, создавая системные бэкапы и восстанавливая их. А если вам нравится программа AOMEI Backupper, можете скачать готовый ISO-образ с ней для записи на флешку или оптический диск.Загрузочный носитель с бэкапером подготовили, теперь запускаем Sysprep. В её окне выбираем переход в окно OOBE, а в параметрах выключения – завершение работы.Запускаем компьютер с загрузочного носителя с бэкапером. Создаём резервную копию уже отвязанной от драйверов Windows.
При создании указываем местом хранения резервной копии либо вместительную флешку, либо USB-HDD, либо внутренний жёсткий диск, который потом можно будет временно подключить к новому компьютеру.
Далее подсоединяем флешку или жёсткий диск с резервной копией к другому компьютеру, загружаемся с загрузочного носителя с бэкапером и восстанавливаем Windows.
При восстановлении Windows её драйверы будут установлены по-новому.Примечание: друзья, по теме переноса Windows на другой компьютер с отличным железом смотрите также детальный мануал с использованием разных инструментов в статье сайта «Как перенести Windows 10 на другой компьютер» (применимо также к Windows 7 и 8.1).
Ещё одна функция Sysprep – возможность сброса активации. В идеале эта функция предназначается, опять же, для отвязки эталонного образа Windows от активации и поставки модифицированного дистрибутива системы без вшитого ключа продукта.
Но поскольку нигде не написано и мокрой печаткой не закреплено, что эту функцию можно использовать в других целях, сброс активации с помощью Sysprep знающие люди используют для продления 30-дневного триал-срока Windows 7. Активацию системы можно сбросить трижды, следовательно, в целом триал-срок работы с «Семёркой» может составить 120 дней.
Как сбросить активацию Windows 7? Запускаем Sysprep. В её окне выбираем переход в окно OOBE, ниже ставим галочку «Подготовка к использованию», в параметрах завершения указываем перезагрузку.Примечание: Сбросить активацию системы можно и другим способом — с помощью командной строки. Этот способ мы рассматривали в статье о Windows Embedded 7.Сброс активации с помощью Sysprep также можно использовать для продления срока бесплатных пробных лицензий Evalution ознакомительных Windows. Такие предлагаются IT-специалистам компаний в рамках проекта TechNet Evaluation Center компании Microsoft. В число таких ознакомительных систем входит Windows 10 Корпоративная и LTSB. Их официально можно бесплатно использовать 90 дней, а потом нужно либо покупать ключ продукта, либо переустанавливать систему, чтобы заново начался отсчёт дней Evalution-лицензии. Но если под конец 90-дневного срока сбросить активацию Evalution с помощью Sysprep, Windows не нужно будет переустанавливать ещё 90 дней, а потом ещё таких же 90 дней. В итоге получим 360 дней бесплатного использования.После использования Sysprep с указанным действием «Переход в окно приветствия OOBE» Windows запустится на этапе задания региональных и профильных параметров. Этот этап мы всегда проходим при установке системы. Здесь нужно указать страну, раскладку клавиатуры и создать новую локальную учётную запись.
В эту новую учётную запись можно даже не входить, если она сама автоматом не запустится. Если запустится, выходим на экран блокировки, заходим в свою старую учётную запись.
И потом из своей учётки можем удалить новую учётку.
Привязка к железу — Диски | Программирование на Delphi для начинающих и не только
Главная » Статьи по Delphi » Диски » Привязка к железу
C0ffe1n
Tweet
Иногда в программах необходимо использовать возможность проверки типа носителя или его серийный номер. Причины могут быть разными от банального контроля устройств в системе до средств защит использующих привязку к железу. Сейчас я вам покажу как с помощью API реализовать эту простую задачу.
- Нам понадобится всего 2 API — функции:
- • GetDriveType — определяет и возвращает тип носителя;
- • GetVolumeInformation — определяет информацию о носителе, среди которой содержится серийный номер.
Рассмотрим описание этих функций для С++ и Delphi. Первой будет функция GetDriveType, она очень простая и использует всего один параметр — указатель на том. Например “c:”,”a:” и т.д. Функция возвращает одно из следующих значений:
DRIVE_UNKNOWN — 0 : диск неопределен/не существует DRIVE_NO_ROOT_DIR — 1 : неверный путь/ путь не указывает на том DRIVE_REMOVABLE — 2 : тип устройства определяется как съемный (дискета, флешка и т.д.) DRIVE_FIXED — 3 : тип устройства — фиксированный диск (жесткий диск) DRIVE_REMOTE — 4 : тип устройства — удаленный(сетевой) диск DRIVE_CDROM — 5 : это устройство CD-ROM DRIVE_RAMDISK — 6 : виртуальный диск, созданный в оперативной памяти
C/C++
UINT WINAPI GetDriveType( LPCTSTR lpRootPathName //путь к диску);
Delphi
function GetDriveType(lpRootPathName: PChar): UINT; stdcall;
Здесь в качестве параметра передается путь к диску.
Замечание: Если в качестве параметра указать для С/С++ NULL, а для Delphi — nil то тип устройства будет определяться для текущего диска (с которого была запущена программа).
А теперь взглянем на функцию GetVolumeInformation. Тоже достаточно простая функция, однако использует параметров значительно больше.
C/C++
BOOL WINAPI GetVolumeInformation( LPCTSTR lpRootPathName, //путь к сетевому или локальному тому // пример: «MyServerMyShare» или «C:». LPTSTR lpVolumeNameBuffer, //буфер — в котором будет храниться имя тома DWORD nVolumeNameSize, //размер буфера LPDWORD lpVolumeSerialNumber, //серийный номер тома LPDWORD lpMaximumComponentLength, //размер тома LPDWORD lpFileSystemFlags, //тип файловой системы LPTSTR lpFileSystemNameBuffer, //название файловой системы DWORD nFileSystemNameSize //размер буфера под название ФС);
Delphi
function GetVolumeInformation( lpRootPathName: PChar; //путь к сетевому или локальному тому // пример: «MyServerMyShare» или «C:». lpVolumeNameBuffer: PChar; //буфер — в котором будет храниться имя тома nVolumeNameSize: DWORD; //размер буфера lpVolumeSerialNumber: PDWORD; //серийный номер тома
var lpMaximumComponentLength, lpFileSystemFlags: DWORD; //размер тома
// и тип файловой системы lpFileSystemNameBuffer: PChar; //название файловой системы nFileSystemNameSize: DWORD //размер буфера под название ФС
): BOOL; stdcall;
Замечание: Если в качестве первого параметра указать для С/С++ NULL, а для Delphi — nil то функция будет выполняется для текущего диска (с которого была запущена программа).
Ну а теперь собственно для пущего интересу приведу пример, как привязать программу к устройству. В данном примере будем привязывать программу к флешке. Смотрим пример:
C/C++
#include#include#include#include
using namespace std;
int main() { // Получаем тип носителя с которого запущена программа unsigned int drive_type = GetDriveType( NULL );
char VolumeNameBuffer[100];
char FileSystemNameBuffer[100]; DWORD sz,fs;
unsigned long drive_sn;
GetVolumeInformationA(NULL, VolumeNameBuffer, 100, &drive_sn, sz, fs, FileSystemNameBuffer, 100);
cout