config.txt: имя хоста

Как вы могли догадаться из названия, я хотел бы знать, можно ли изменить имя хоста RasPis из config.txt файл на SD-карте.

Я делаю много SD из пользовательского образа, и, очевидно, имена хостов сталкиваются при загрузке (они используются из других приложений в сети).

4 голоса | спросил Jo Colina 30 MarpmWed, 30 Mar 2016 16:20:43 +03002016-03-30T16:20:43+03:0004 2016, 16:20:43

2 ответа


5

Невозможно установить имя хоста устройства через config.txt. Полный список команд можно найти на веб-сайте http://www.raspberrypi.org/documentation/configuration/config-txt.md".

Альтернатива:

Вы отмечаете, что создаете пользовательский образ. В этом случае я считаю, что наилучшей практикой было бы записать назначенное имя хоста в /etc/hostname во время процесса создания карты. Это требует перезагрузки (при условии, что RPi в настоящее время запущен), но так же меняет что-либо в config.txt.

Если вы действительно хотите обойти перезапуск, это возможно, но может вызвать некоторые проблемы. Имя хоста может быть временно изменено командой sudo hostname {super_cool_name_here}. После этого перезапустите службу сети с помощью sudo service network restart.

Теперь, если вы запустите hostname, вы увидите свое новое имя хоста как активное. Это изменение не постоянное. При перезапуске устройства он вернется к тому, что хранится в /etc/hostname.

ответил Jacobm001 30 MarpmWed, 30 Mar 2016 17:51:37 +03002016-03-30T17:51:37+03:0005 2016, 17:51:37
2

Хорошо, из ваших комментариев к другому ответу, похоже, вы хотите изменить имя хоста Raspberry Pi без фактической загрузки. Это должно быть тривиально. Мы хотим изменить имя /etc /hostname во втором разделе, поэтому мы найдем его расположение на изображении с помощью fdisk.

fdisk -l image.img

Где image.img - это ваш файл изображения. Посмотрите на начальный столбец для второго раздела (Linux ext4), чтобы найти блок, на котором он начинается. Замените это на команду ниже. Обратите внимание, что после этого процесса это не изменится, поэтому вы можете изменить имя хоста, отправить изображение, а затем изменить его снова, без необходимости запускать fdisk и использовать новое значение.

sudo mount -o loop,offset=$((TYPE_START_BLOCK_HERE*512)) image.img /mnt
nano /mnt/etc/hostname

Избавьтесь от значения по умолчанию и введите требуемое имя хоста, а затем нажмите Ctrl-x, затем y, а затем введите. Теперь мы можем отключить изображение следующим образом.

sudo umount /mnt

Готово! Использование dd для загрузки изображения на SD-карту и загрузка карты в Pi установит имя хоста Pi в указанное вами имя.

Чтобы автоматизировать этот процесс и быстро изменить имя хоста между dd, можно написать сценарий bash:

#!/bin/bash

mkdir tst;
echo ${1:?"Set argument one to filename"} > /dev/null;
echo ${2:?"Set argument two to desired hostname"} > /dev/null;
mount -o loop,offset=$(($(fdisk -l $1 |awk '$7=="Linux"{print $2}')*512)) $1 
tst;
echo $2 > tst/etc/hostname;
umount tst;
rmdir tst;
ответил Karthik Karyamapudi 29 J000000Saturday17 2017, 09:19:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132