Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@mbamba

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
# apt-get install -y lxc
# apt-get install -y freerdp

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
$ sudo systemctl restart smbd nmbd

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

リモートデスクトップで接続する

.xsessionファイルの立ち上げ。これがないと、xrdpにつないだ後、エラーがでる。そもそもコンソールでもstartxが動かないので、設定漏れに気づくハズ。

$ echo "lxsession -e LXDE" > ~/.xsession

コンソールのログイン画面をCUIにしておくためのコマンド

$ sudo systemctl stop lightdm.service
$ sudo systemctl disable lightdm.service

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へ登録

formatが必要な場合

# fdisk /dev/sdx
# mkfs.ext4 /dev/sdx1

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台のサーバで提供可能

TUNのときは、以下の設定を忘れないようにしましょう
- /etc/sysctl.conf: net.ipv4.ip_forward=1
- if-up.shとif-down.shを更新して、接続時にiptablesでサブネットをつなぐ

外付け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

lxc

残念ながら、Debian (10.4も) では、lxdは、apt-getできないので、lxcをapt-getします。(snapで、lxdがはいるらしいですが、挑戦せず)

$ sudo apt-get install -y lxc

設定は面倒なので、sudoでのみ利用

$ sudo lxc-create -t download -n newvm
$ sudo lxc-start -n newvm
$ sudo lxc-attach -n newvm

システム設定

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

ほかのユーザのidを参考にする手順

$ id -G hoge                         ; -Gで、数字のみ一覧表示
$ sudo usermod -a -G a,b,c,d,e hoge  ; -Gに、","区切りで連結できる

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

2画面、左右制御

  • xrandrでデバイス名を確認
  • xrandr (option)で入れ替え
$ xrandr 
Screen 0: minimum 320 x 200, current 4480 x 1440, maximum 8192 x 8192
HDMI-1 connected primary 1920x1080+2560+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+  60.00    50.00    59.94  
   1920x1080i    60.00    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     60.02  
   1280x960      60.00  
   1152x864      59.97  
   1280x720      60.00    60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32  
   720x576       50.00  
   720x480       60.00    60.00    59.94    59.94  
   640x480       60.00    59.94    59.94  
HDMI-2 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 280mm x 150mm
   2560x1440     59.95*+  49.96  
   1920x1080     60.00    60.00    50.00    59.94  
   1920x1080i    60.00    59.94  
   1400x1050     59.95  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x960      60.00  
   1280x720      60.00    60.00    59.94  
   1024x768      75.03    70.07    60.00  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    60.00    59.94  
   720x400       70.08  
$ xrandr --output HDMI-1 --right-of HDMI-2

うちの環境は、2Kが左、FHDが右にある。2K(=HDMI-2)の右にFHD(=HDMI-1)を持ってくるようにオプションを指定。コマンド投入直後に、左右が入れ替わる。

debianからxrdpサーバへ接続

いつもは、Windows PCから接続しますが、たまにxrdpを動かしているサーバそのものから、アクセスする必要が出てきたので、試した。

まずは、freerdpのインストール

$ sudo apt-get install freerdp

単純に起動すると、以下のエラーで、起動が妨げられる

$ xfreerdp 192.168.0.2
(snip)
[xx:xx:xx:308] [2596:2597] [ERROR][com.freerdp.core.update] - [0x03] Cache Glyph - SERVER BUG: The support for this feature was not announced! Use /relax-order-checks to ignore
(snip)

これを回避するには、いろいろとオプションをつける必要がある。
- +glyph-cache
- /relax-order-checks

また、こいつらを指定するとオプションの付け方がいろいろ変わり、最終的には、次で起動。

$ xfreerdp /w:1920 /h:1080 /v:192.168.0.2 +glyph-cache /relax-order-checks

/w: /h: 1920x1080
/v: xrdp server

DockerをKVM環境に同居させたら、iptablesの設定がおかしくなった

ホストマシン以外からpingを打ったり、仮想マシンからpingを打っても、通らなくなる事象が発生。ipbalesを書き換えることで対応

$ sudo iptables -A FORWARD -i br0 -o br0 -j ACCEPT

出来心でインストールしたDockerでひどい目にあった

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
mbamba
気が向くままに、Open Sourceを触った記録を、ここにまとめています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?