Это возможно с eval :
$ declare -a array=( 1 2 3 4 )
$ echo "${array[@]}"
1 2 3 4
$ p=ay
$ tmp=arr$p
$ echo "$tmp"
array
$ echo "\${${tmp}[@]}"
${array[@]}
$ echo "newarray=(\"\${${tmp}[@]}\")"
newarray=("${array[@]}")
$ eval "newarray=(\"\${${tmp}[@]}\")"
$ echo "${newarray[@]}"
1 2 3 4
$
Команды, начинающиеся с echo, служат для иллюстрации, eval опасен.
Обратите внимание, что приведенное выше не сохраняет индексы массивов для разреженных массивов.
При определении структуры разделов жесткого диска необходимо помнить о нескольких вещах. Для традиционного диска в стиле MBR -в начале диска для таблицы разделов зарезервировано 512 байт. Многие старые диски имели секторы размером 512 -байт, поэтому создание первого раздела сразу после таблицы разделов не было проблемой.
Еще кое-что, о чем следует помнить, это то, что на таких больших жестких дисках, как этот, некоторые BIOS не загружают ОС, если требуемые файлы находятся недостаточно близко к началу диска. Чтобы обойти это, можно использовать отдельный раздел /boot
.
Кажется, что ваш новый накопитель имеет (довольно распространенный размер сектора )4 КиБ. Это 4096 байт. В этом случае размещение раздела непосредственно после таблицы приведет к тому, что этот раздел окажется в середине сектора — другими словами, будет смещенным . Если вы разрешаете установщику автоматически создавать и упорядочивать разделы, он может не учитывать этот факт.
Чтобы убрать предупреждение и все ваши разделы начинались на границах секторов, убедитесь, что первый раздел начинается с 4 КиБ на диске с байта 4096. Вам понадобится несколько сотен МБ для вашего раздела /boot
, но пока каждый раздел кратен 4 КиБ, они будут выровнены в вашем случае. Обратите внимание, что любое целое число МиБ или ГиБ кратно 4 КиБ.
Для того, чтобы на самом деле добиться такого правильного расположения, может быть лучше разместить разделы от конца к началу, так как на первый взгляд кажется, что программа установки не позволяет вам указать начальное местоположение для раздела.Я предполагаю, что это будет единственная ОС на вашем диске, и вам нужны /boot
, /
и раздел подкачки в таком порядке. Затем вы должны сначала выбрать «Что-то другое», когда установщик спросит, как вы хотите отформатировать диск, и выполните следующие действия:
/
/boot
1 Программа установки явно указывает размеры в «мегабайтах (1000000 байтов )», что автоматически не кратно размеру вашего сектора. Однако 64 МБ равно 15625 секторам, поэтому, если размер разделов кратен 64 МБ, это будет нормально в любой интерпретации.