LINUX.ORG.RU

можно ли переносить linux с одного железа на другое?

 


0

2

Этот вопрос навеян результатом обсуждения
www.linux.org.ru/forum/admin/17290725?cid=17303815 Дело в том, что комп с менее сильным железом более неустойчиво считает одни и те же задачи, чем более продвинутая система железа.
Первоначально система (Ubuntu20.04) устанавливалась на более сильный комп, после чего ее копия переносилась на более слабый. Как показал «разбор полетов» более слабого компа, он иногда, случайным образом что-то не успевает сделать, в результате чего процесс ядром отправляется в «вечный сон».
Вот возник вопрос, возможно глупый для спецов, а не может ли первоначально ядро быть настроено на особенности более продвинутого процессора и материнской платы?

При переносе системы есть ньюансы.

Существуют аттрибуты, которые содержаться не в самих файлах, а в файловой системе (пакеты должны быть установлены attr, acl).

Копирует ли эти аттрибуты cp -a я не знаю.

Я архивирую/бэкаплю систему tar-ом с дополнительными командами, которые архивируют/распаковавают эти аттрибуты: Как перенести систему на другой диск? (комментарий)

У меня был случай также, когда использовал tar без опции --numeric-owner и получил неконсистентную систему.

Касается ли это вашего случая я, к сожалению, не знаю.

forest22
()
Ответ на: комментарий от valentin630

С gparted были проблемы лет 12 назад, может сейчас пофикшено.

С resize2fs «игрался». Что точно было, не помню, просто с тех пор не использую.

Из всей этой связки только с parted никаких проблем, но с ним одним в вашем случае далеко не уедешь.

forest22
()

а не может ли первоначально ядро быть настроено на особенности более продвинутого процессора и материнской платы?

Вероятность стремится к нулю, т.к. ядро и вообще пакеты в убунте собирают с минимальными флагами оптимизации, что-то вроде -march=x86_64 -mtune=generic

Добавь оперативки на слабый комп.

alex1101
()

В общем случае можно. Арч я так переносил. Но случае перехода на видеокарту от другого производителя (в смысле Nvidia, AMD, Intel, а не тот, кто собрал) придётся немного поколдовать с дровами.

Насчёт конкретно убунты, впрочем, не уверен. Они там намудрили сложности ради сложности, так что могут (как всегда с убунтой и использованием шаг в лево, шаг вправо от «стандартного») быть и подводные камни.

CrX ★★★★★
()
Ответ на: комментарий от teod0r

cp из GNU coreutils достаточно давно понимает xattr и с опцией ″-a″ или ″-p=xattr|all″ копирует xattr (команды getfattr, setfattr). Acl входит в xattr.

А вот атрибуты ext3, которые lsattr, chattr не копирует.

mky ★★★★★
()
Ответ на: комментарий от firkax

Но спрашивал то ТС именно про ядро. Не знаю, что подразумевалось под «ядро быть настроено», насколько я знаю, ubuntu при установке не занимается правкой параметров ядра (те, которые через загрузчик/конфиг груба предаются). Поэтому, что копируй, что устанавливай с нуля, ядро будет одинаковым и его параметры тоже будут одинаковыми. Плюс я не знаю, есть ли вобще параметры ядра, влияющие на выполнение кода, там в основном параметры драйверов устройств.

случайным образом что-то не успевает сделать

При таком описании, это уже похоже на кривой код с race condition...

mky ★★★★★
()
Ответ на: комментарий от mky

Ясно. Я напутал xattr и chattr.
Кстати, как вообще работают эти ACL и SELinux? Какие ещё есть? Читал, Что некоторые программы, не поддерживающие ACL при создании файлов не наследуют полномочия.
Почему в tar разделено --acls --selinux --xattrs? --xattrs подразумевает все?
tmpfs все атрибуты поддерживает?

teod0r ★★★★★
()
Ответ на: комментарий от teod0r

Всё запутано :) Изначально была простая идея, что пусть ФС система может хранить не только файл и его атрибуты (базовые), но и расширеные атрибуты (xattrs), в виде пар ИМЯ=ЗНАЧЕНИЕ. Для работы системные вызовы setxattr()/getxattr(). И гарантируется атомарность измения пары и как-бы всё.

Но этого показалось мало, придумали пространства имён (namespace) и имя приобрело вид: user.mime_type, system.posix_acl_access, security.selinux, security.capability. По имени двух последних понятно, для чего их использует ядро, и в этом случае оно не даёт записать произвольный мусор в этот параметр, а только данные в определённом формате. Обычный пользователь может изменять только параметры в namespace user. Всего в Linux: user, trusted, security, system.

То есть в linux используют xattrs для хранения ACL и SeLinux и пр.

В linux в текущей версией tar так:
# tar -c --xattrs  — занесёт в архив все xattr файла
# tar -x --xattrs  — установит у извлекаемых файлов только user.* атрибуты
# tar -x --xattrs --xattrs-include='*'  — установит у извлекаемых файлов все атрибуты

Но, не обязательно, что acl хранятся в xattr. POSIX определяет отдельный набор вызовов, типа acl_get_entry(), для работы с ACL. Я не знаю, что будет, если создавать tar-архив в Linux, а распаковывать на другой платформе, где ACL не хранится в xattr. Пожет ли тут создание архива через ″--xattrs --acls″ неясно.

Касательно tmpfs. Достаточно давно, а может с самого начала, она поддерживает ACL, что означает поддержку system.posix_acl_access. Пишут, что с 5.9 в конфигурации ядра можно указать CONFIG_TMPFS_XATTR, что даст trusted.* и security.*. Но user.*, вроде как, до сих пор не поддерживается.

не поддерживающие ACL при создании файлов не наследуют полномочия

Вроде нет, вроде автоматически при вызове create(). Разве что, если ФС смонтировать с отключеным ACL и тогда насоздавать файлов...

mky ★★★★★
()
22 сентября 2023 г.

да я сделал pacstrap в виртуалке на hyperbola gnu/linux libre по мануалу и перенёс на флешку т.к. у меня на usb-live тогда не было интернета и нету исо с офлайн установкой, доустановил и запускается только через фалбак

anon39
()
Последнее исправление: anon39 (всего исправлений: 2)

с некоторыми ограничениями и условно, внутри одной аппаратной архитектуры - условно да, зависит от acpi, перефирии и содержимого ([/boot/config*|/proc/config*])

etwrq ★★★★★
()