Edited at

Debianをインストール中

Debian 9.4をクリーンインストールしました。

その備忘録デス

Debian 10でも同じです。(しょっちゅうインストールしている模様)


インストール中

途中、Gnomeが選択されています。ここでは、それを外し、選択は、最後に表示される2つだけにしています。ssh serverと、その他のツールのみです。

Gnomeの選択を外すと、インストールが高速化される印象であり、一方で、肝心なツールがインストールされない印象。そのため、インストール後に基本的な設定が必要になります。


インストール後


基本設定


必要なツールのインストール

# apt-get install -y net-tools

# apt-get install -y sudo
# apt-get install -y samba
# apt-get install -y xrdp tigervnc-standalone-server
# apt-get install -y xorg lxde-core tightvncserver
# apt-get install -y rsync
# apt-get install -y qemu-kvm libvirt-clients qemu-utils libvirt-daemon-system virt-manager
# apt-get install -y mdadm
# apt-get install -y firmware-realtek
# apt-get install -y nfs-kernel-server
# apt-get install -y acpidump
# apt-get install -y task-japanese locales-all
# apt-get install -y ibus-mozc
# apt-get install -y nginx
# apt-get install -y build-essential
# apt-get install -y openvpn
# apt-get install -y sdparm
# apt-get install -y bridge-utils


Sudoersの変更

#vi /etc/sudoers

# User privilege specification
root ALL=(ALL:ALL) ALL
myid ALL=NOPASSWD: ALL <<==追記

myid ALL=NOPASSWD: ALLを追記

これで、sudoするときに、パスワードなしで実行できるようになります。

好みですが、パスワード不要派はドウゾ


sambaの変更

ユーザ登録をします。

$ sudo pdbedit -u myid -a


xrdpの設定

とくに、難しいこともなく、単純にインストール。

$ sudo apt-get install -y xrdp tigervnc-standalone-server

$ sudo systemctl start xrdp
$ sudo systemctl enable xrdp

このあと、お気に入りのセッション設定を、/etc/xrdp/xrdp.iniに記述します。


/etc/xrdp/xrdp.ini

;

; Session types
;

[myhost]
name=myhost
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000

違う端末から、同じセッションに入れるようにするには、次の"param8"と"param9"おまじないが必要

これを入れないと、クライアントAで起動した5910セッションに、クライアントBからはいれない


/etc/xrdp/sesman.ini

[Xvnc]

param=Xvnc
param=-bs
param=-nolisten
param=tcp
param=-localhost
param=-dpi
param=96
param8=-SecurityTypes
param9=None


vncserverの設定

xrdpに乗り換えたので、xrdpの項とちょっとつじつまが合わない箇所あり

$ sudo apt-get install -y xorg lxde-core tightvncserver

このあと、.vnc/xstartupに、次の一文を加える

/usr/bin/startlxde &

lxdeをブート時に立ち上がらないようにする呪文

$ sudo systemctl set-default multi-user.target

vncserverを起動時に自動起動させる


/etc/init.d/vncserver

#!/bin/sh -e

### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: networking
# Default-Start: 3 4 5
# Default-Stop: 0 6
### END INIT INFO

. /lib/lsb/init-functions

case "$1" in
start)
log_action_begin_msg "Starting vncserver"
su myid -c "/usr/bin/vncserver"
;;

stop)
log_action_begin_msg "Stoping vncserver"
su myid -c "/usr/bin/vncserver -kill :1"
;;

restart)
$0 stop
$0 start
;;
esac

exit 0


これをサービスに登録

$ sudo update-rc.d vncserver default


kvm/qemu/libvirtの設定

# apt-get install -y qemu-kvm libvirt-clients qemu-utils libvirt-daemon-system virt-manager ovmf

# adduser <youruser> libvirt
# adduser <youruser> libvirt-qemu

uefi bootが必要なら、ovmfが必要

virt-manager (GUI) が必要なら、virt-managerが必要。

ブリッジbr0を作る

auto br0

iface br0 inet static
address 192.168.x.y
netmask 255.255.255.0
network 192.168.x.0
broadcast 192.168.x.255
gateway 192.168.x.1
dns-nameservers 192.168.x.1 8.8.8.8
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
auto eth0
iface eth0 inet manual


mdadmの設定

mdadmで、データ用ディスクのraid1を実施します。

# mdadm --create /dev/md20 --level=raid1 --raid-devices=2 /dev/sdc1 /dev/sdc2

# mdadm --assemble /dev/md20 /dev/sdc1 /dev/sdc2

注意

新しく作るときは、create

既存のraidを戻すときは、assemble

assembleのときは、raidの条件は、デバイスから読みだされて設定されます

/etc/mdadm/mdadm.confへ、情報を追記

# mdadm --detail --scan >> /etc/mdadm/mdadm.conf

fstabへの登録

$ sudo dumpe2fs /dev/md20 | grep UUID

$ sudo ls /dev/disk/by-uuid/ <--確認用

ここで表示されるUUIDを利用して、fstabへ登録


firmware-realtekの設定

そもそも、mdadmをインストールしたら、次のメッセージを受信

W: Possible missing firmware /lib/firmware/rtl_nic/rtl8107e-2.fw for module r8169

W: Possible missing firmware /lib/firmware/rtl_nic/rtl8107e-1.fw for module r8169
...

気持ち悪いので、消しにかかります。

https://unix.stackexchange.com/questions/445673/possible-missing-firmware-update-in-debian-9-4

ここの情報のまんま。いちおう、怒られているチップセットは、realtekのものなので、installは、ffirmware-realtekのみ実施。

#sed -i.bak 's/stretch[^ ]* main$/& contrib non-free/g' /etc/apt/sources.list

#apt-get update
#apt-get install -y firmware-realtek
#update-initramfs -u

debian 9.4なので、stretchを対象にしています。

debian 10では、busterになります。sed で指定しているstretchを読み替えてください。

もしくは、直接、source.listを変更してもヨシです。mainのあとに、contrib non-freeを追記していくだけです。


nfs-kernel-serverの設定

$ sudo apt-get install -y nfs-kernel-server

その後、/etcにexportsができるので、そこを編集

/home           192.168.1.0/255.255.255.0(rw,sync,no_wdelay,no_root_squash)

/mydir 192.168.1.0/255.255.255.0(rw,sync,no_wdelay,no_root_squash)


nginxの設定

設定ファイルは、次のもの



/etc/nginx/nginx.conf

/etc/nginx/sites-enabled/default

defaultのroot情報を書き換えると、任意の場所に、rootの位置を変更できる。デフォルトは、/var/www/html。

そこに、index.nginx-debian.htmlがある

phpは、別途ツールを入れないと動かない

$ sudo apt-get install php7.0-fpm

$ sudo systemctl start php7.0-fpm

(Still, To Be Filled)


openvpn serverの設定

複数のサーバを起動するときには、systemctrlでの指定を工夫する

# systemctl start openvpn@(thefirst)

# systemctl start openvpn@(thesecond)

thefirst.confとthesecond.confが、/etc/openvpn/配下に存在すること

これで、複数のopenvpnが1台のサーバで提供可能


外付けHDDの節電設定 (sdparm)

# sdparam -S 5 /dev/sdx

とすると、hddのスピンを止めることができるらしいが、うちの環境では動いていない


Bridgeの設定

以下を追記

auto br0

iface br0 inet static
address 192.168.0.2/24
gateway 192.168.0.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.1.1
# br
bridge_ports eth0
bridge_stp off
bridge_maxwait 0

もし、eth0にdhcpでアドレスが割り振られている場合は、解除することも可能

# ip addr del <dhcp ip> dev eth0


システム設定


UID/GIDの変更

Linuxでは、UID/PIDがユーザ名で、かつ、1000:1000で登録されてしまいます。

長年、違う番号を使っていたのと、家族のGroupが1000なので、変更する。

# groupmod -g 1001 mygrp

# usermod -u 1001 -g 1001 myid
# groupadd -g 1000 home


Userの追加

ほかの人のIDを追加します。

# groupadd -g 1002 hoge

# useradd -u 1002 -g 1002 -m -d /home/hoge hoge

groupへ追加する

usermod -a -G newgrp hoge

グループ名そのものを変更する場合

groupmod --new-name newgname currentgname


sshするとき、パスワードフリーにする

$ ssh-copy-id -i ~/.ssh/id_rsa.pub myid@myhost


Swapファイルの設定

パーティションを分けるのが嫌いなので、基本、swapファイルを作成して登録、運用しています。

8ギガのマシンなので、大体半分くらいとっておこう、という感じ

$ sudo mkdir /swap

$ sudo dd if=/dev/zero of=/swap/swap.img bs=1M count=4096
$ sudo chmod 600 /swap/swap.img
$ sudo mkswap /swap/swap.img
$ sudo swapon /swap/swap.img


ファイルのコピー

rsyncを使う。

rsync -av --bwlimit=10000 (from) (to)

Bandwidthがないと、rsyncが全力でコピーするので、ほかの作業がのろくなる。


大きなファイルを探し出す

duを使って掘っていく。max-depthで、掘り進める深度が指定できる。

あとは、大きい順にソートするだけ

sudo du -h --max-depth=1 --exclude="hoge" / | sort -hr


cpanの呪縛

perlな人なので、perlを入れる。

cpanでうまく入らない場合は、apt-getでやってみる

# apt-get install -y libXXX-YYY-ZZZ-perl

XXX, YYY, ZZZは、XXX::YYY::ZZZにそれぞれ相当。

cpan installでうまくいかなければ、apt-getか、cpanコンソールから、install。


crontabの再設定

$ crontab -e

で編集されるファイルは、次のところにある



/var/spool/crontabs/myid



必要なタスクをコピペすればOK


Node.jsのインストール

素直なaptではなかったので、こちらに記載

$ sudo apt-get install -y curl

# curl -sL https://deb.nodesource.com/setup_12.x | bash -
$ sudo apt-get install -y nodejs


IPv6を中止


/etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1


umountで困ったら

# umount -f

# umount -l

"-f"でだめなら、"-l"でやってみる


Timezone

en-usモードでインストールすると、アメリカ時間しか設定できないので、以下の作業が必要

sudo timedatectl set-timezone Asia/Tokyo