NFSに関するメモ

Gentoo LinuxでNFS(Network File System)を使う場合のメモ

カーネル設定

カーネルのNFS関連で必要な部分を有効にしてビルドしてください。(NFS clientはデフォルトで有効になっていると思います。)

File systems --->
  -*- Inotify support for userspace
  [*] Network File Systems --->
    <*> NFS client support
    <*> NFS client support for NFS version 2
    <*> NFS client support for NFS version 3
    <*> NFS client support for NFS version 4
  <*> NFS server support
    [*] NFS server support for NFS version 3
    [*] NFS server support for NFS version 4

net-fs/nfs-utils

nfs-utilsをインストールします。

# emerge --ask net-fs/nfs-utils

サーバー側の設定例

NFSで使いたいディレクトリを/etc/exportsに追加します。

/export 192.168.0.0/24(insecure,rw,sync,no_subtree_check,crossmnt,fsid=0)

192.168.0.0/24の部分はNFSサーバーにアクセス可能なIPアドレスになります。個人がローカルネットワークで使う場合にセキュリティ上の問題が発生することは稀と思いますが、不特定多数が使うサーバーでは注意して設定してください。

NFSサーバーの起動

NFSサーバーの起動は次のコマンドで実行できます。

# /etc/init.d/nfs start

サーバー起動時にNFSサーバーも自動で起動させたい場合は

# rc-update add nfs default

も実行します。

クライアント側の設定

mountは次のようなコマンドで実行できます。

# mount 192.168.0.1:/ /mnt/path-to-dir

192.168.0.1はNFSサーバーのIPアドレスになります。

/etc/fstabに設定を追加すると、PC起動時に自動でmountもできます。

# 192.168.0.1:/ /mnt/nfs nfs rw 0 0

rootを使いたい場合のTIPS

クライアントのrootをサーバーのrootにマッピングしたい場合は/etc/exportsno_root_squashを追加するといいみたいです。

/export 192.168.0.0/24(insecure,rw,sync,no_subtree_check,crossmnt,fsid=0,no_root_squash)

シンボリックリンクを使いたい場合のTIPS

SMB(Samba)と違ってNFSではシンボリックリンクを使うことはできませんが、/etc/fstabで以下のようにすると/export/bind/path/to/dirの内容を参照することはできるみたいです。

/path/to/dir /export/bind none defaults,auto,bind 0 0

リンク

nfs-utils – Gentoo Wiki
https://wiki.gentoo.org/wiki/Nfs-utils

Man page of EXPORTS
https://linuxjm.osdn.jp/html/nfs-server/man5/exports.5.html

xrandrの使い方

xrandrを使うと、ディスプレイの解像度を変更したり画面回転したりなどX Window Systemの設定ができます。

現在の状況を確認

現在のディスプレイの設定状況を確認したい場合はオプションを付けずにxrandrを実行します。

$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis)
   1920x1080    60.00*+
   1680x1050    59.95
   1400x1050    59.98
   1600x900     60.00
   1280x1024    75.02    60.02
   1440x900     59.89
   1280x800     59.81
   1152x864     75.00
   1280x720     60.00
   1024x768     75.03    60.00
   800x600      75.00    60.32
   640x480      75.00    59.94
   720x400      70.08
LVDS-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis)
   1920x1080    60.00*+
   1680x1050    59.95
   1400x1050    59.98
   1600x900     60.00
   1280x1024    75.02    60.02
   1440x900     59.89
   1280x800     59.81
   1152x864     75.00
   1280x720     60.00
   1024x768     75.03    60.00
   800x600      75.00    60.32
   640x480      75.00    59.94
   720x400      70.08
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)

この例では、VGA-1LVDS-1の出力がオンになっている状態です。

LVDS-1の出力をオフに

特定の端子からの出力をオフにしたい場合は--offオプションを使います。

$ xrandr --output LVDS-1 --off

HDMI-1の出力をオンに

特定の端子からの出力をオンにしたい場合は--offオプションなしで--outputオプションを使います。

$ xrandr --output HDMI-1

解像度を手動で設定したい場合は--modeオプションを追加します。

$ xrandr --output HDMI-1 --mode 1920x1080

ミラーリングでなく、2つのディスプレイを1つのデスクトップとして使いたい場合は--posオプションで位置を設定できます。

$ xrandr --output VGA-1 --pos 0x0 --output HDMI-1 --pos 1920x0 --mode 1920x1080

Enumをforeachでループしたい場合

C#でEnumの各項目をforeachでループしたい場合、Enum.GetValuesを使うと簡単にできるみたいです。

使い方

using System;

public class Example
{
  enum Name { "aaa", "bbb", "ccc" };

  public static void Main()
  {
    foreach (int i in Enum.GetValues(typeof(Name)))
    {
      Console.WriteLine(i);
    }
  }
}

実行結果

aaa
bbb
ccc

リンク

Enum.GetValues(Type) Method (System) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/api/system.enum.getvalues?view=netframework-4.8