Как и другие значения CONFIG_
, CONFIG_HZ
является параметром конфигурации; вы найдете его вkernel/Kconfig.hz
вместе с различными переопределениями, относящимися к архитектуре -, в других файлах Kconfig
. Его значение определяется во время сборки и сохраняется в сгенерированном файле конфигурации include/generated/autoconf.h
.
Последний включается командой сборки ядра. Чтобы увидеть это в действии, выберите файл, который включает в себя asm/param.h
, и соберите его пост-обработанный эквивалент -, подробно; например
make drivers/atm/suni.i V=1
В какой-то момент сборки вы увидите
gcc -E -Wp,-MD,drivers/atm/.suni.i.d -nostdinc \
-isystem /usr/lib/gcc/x86_64-redhat-linux/8/include \
-I./arch/x86/include -I./arch/x86/include/generated \
-I./include -I./arch/x86/include/uapi \
-I./arch/x86/include/generated/uapi -I./include/uapi \
-I./include/generated/uapi \
-include./include/linux/kconfig.h \
-include./include/linux/compiler_types.h...
-DMODULE -DKBUILD_BASENAME='"suni"' -DKBUILD_MODNAME='"suni"' \
-o drivers/atm/suni.i drivers/atm/suni.c
и вы можете увидеть результат в drivers/atm/suni.i
с расширением HZ
и CONFIG_HZ
.
Директива -include./include/linux/kconfig.h
гарантирует, что конфигурация ядра всегда включена.include/linux/kconfig.h
включает generated/autoconf.h
.
What can I do on the original machine BEFORE I capture an 'image' of it, so that when unpacked to another machine this problem is avoided?
вместо ссылки на диск, монтируемой по имени -, сделайте это по
# for example when mounted by-name it would look like this in /etc/fstab
/dev/sda3 /
# and When mounted by-label it would like this in /etc/fstab
LABEL=some_name /
Выполнение этого с помощью -метки будет работать в новой системе без дополнительной работы.
Знайте, что выполнение этого по -имени будет работать в новой системе только в том случае, если это единственный диск в системе, для которого гарантируется ссылка на sda
. Когда в системе есть другие диски или когда другое оборудование обрабатывается как /dev/sd?
, вы не можете полагаться на то, что ваш клонированный диск всегда будет sda
, и в этом проблема с именем -. Если все ваши ссылки /etc/fstab
и grub
имеют /dev/sda
, но ваш диск указан как /dev/sdb
, тогда загрузочное устройство не найдено .
Вы должны немного знать свою систему Linux, RHEL/CentOS, SLES/SUSE, Ubuntu или что-то еще, и найти, где находятся все ссылки на диски . Это не просто /etc/fstab
.Загрузчик Grub , скорее всего, будет в других местах, так как он наиболее популярен среди Linux. История :Раньше я использовал SLES 11, который использовал ELILO... который был альтернативой grub, который я считал отличным... верните ELILO!... но для этого мне нужно было беспокоиться только о одном другом файле, кроме /etc/fstab
, который был elilo.conf
.
Как только ваш новый клонированный диск загрузится и заработает, среди ваших различных задач по настройке этой новой системы (имя хоста, IP-адрес и т. д. )просто обновите /etc/fstab
и файлы grub, чтобы вернуться к монтированию от -uuid
Также помните, что при монтировании по -метке вы должны гарантировать, что другие диски не будут использовать ту же метку. Кажется достаточно просто, но это легко забыть; например, я всегда обозначаю раздел /boot
просто boot
, а мой раздел /
просто root
. Если я пойду и клонирую диски, а затем попытаюсь подключить два из этих дисков и попытаюсь загрузиться, что выберет система, когда более одного раздела имеют одинаковую метку? Таким образом, метка -может вас укусить, если вы будете забывчивы... система может легко загружаться и работать, но вы не будете работать на том диске, о котором думаете.
Посмотрите под /dev/disk/
и вы увидите
используйте это для справки, это должно быть очень ясно для понимания.
ls -l /dev/disk/by-label
lrwxrwxrwx. 1 root root 10 Mar 2 15:46 boot ->../../sdc2
lrwxrwxrwx. 1 root root 10 Mar 2 15:46 data ->../../sda1
lrwxrwxrwx. 1 root root 10 Mar 2 15:46 root ->../../sdc3
lrwxrwxrwx. 1 root root 10 Mar 2 15:46 scratch ->../../sdb1
# Explanation of these 4 listings: when installing Linux I always do
/boot ==> /dev/sda2 labeled as 'boot'
/ ==> /dev/sdc3 labeled as 'root'
my other disks here on this specific system I labeled as data and scratch.
blkid
, чтобы узнать исходные UUID разделов. sudo tune2fs -U UUID /dev/partition
для установки UUID, который вы получили в 1. sudo btrfstune -U UUID /dev/partition
sudo xfs_admin -U UUID /dev/partition
Имейте в виду, что не рекомендуется иметь разные разделы с одним и тем же UUID и вдвойне, если вы решите подключить два диска к одному ПК. Ваше ядро и вы лично можете запутаться и может произойти что-то непреднамеренное.