Ubuntu-samba追加設定

Ubuntu機には、Ubuntuをインストールした2TBのHDDの他に、500GBのHDDがもう3台ついている。どれも古いものばかり。新しくても2014年、古いものは、2009年の製造。

CentOSでNASを作っていたときは、sambaの設定で各HDDを別々の共有領域にしていた。

今回は、こちらも面倒くさいので、/home/shareのsamba共有フォルダーに、各HDDをマウントして、sambaの最初の1つの共有のみでアクセスできるようにしてみた。

まずは、/home/shareのフォルダーの中に各HDD用のマウント用フォルダーを作成。分かりやすいように、HDDの型番の一部をフォルダー名にしておいた。

まず、/homeに共有用のフォルダーを作成。フォルダー名hdp725050の場合。
$ sudo mkdir /home/share/hdp725050

そこへ、HDDをマウント。マウントはGUIのディスクアプリから行った。

「ユーザーセッションのデフォルト」をオフにして、「システム起動時にマウントする」にチェックを入れる。「表示名」は分かりやすくするため、HDDの型番にしておいた。そして、「マウントポイント」に作った共有用フォルダーを指定する。

ただ、これだとフォルダーがユーザー専用になってしまうので、chownやchmodでsambaで共有可能なように設定する。HDD3個分を行った。

まず、/homeの共有用のフォルダーのオーナの変更。フォルダー名dt1050の場合。
$ sudo chown nobody:nogroup /home/share/dt1050

そして、アクセスの権限の設定。
$ sudo chomd 777 /home/share/dt1050

そして、sambaの再起動
$ sudo systemctl restart smbd

Windowsマシンに移動して、ネットワークにUbuntuマシンのIPを入れて、追加共有したフォルダーが見えれば動作OK。

10年物のHDDがどのくらいもつか分からないので、なんとも言えないが使える間はこれでやってみよう。一応UbuntuのNAS完成ということで。

Ubuntuマシンを再構築

Ubuntuマシンを再構築。

どうもHDDを入れ替えたり動作を確認したりしていたら、sambaの共有が不安定になったので、いっそうのことまたインストールしなおした。ついでにHDD起動としてみたが、起動もそれほど遅くないので、このままつかっていくことにした。せっかくのSSDは外してしまった。
インストール時にこの前までは、グラボのドライバも自動でダウンして入れるようにしていたら、今回インストーラが落ちる。なので、インストール時はそういった追加のドライバをいれないようにした。

「アップデートと他のソフトウエア」の所で、「グラフィクスとWifi・・・」のチェックを外した。

2TBのHDDをメインにしたので、これは2010年製造で48個ほど代替セクタがでているので、いつまでもつか???だけれども、今のところ調子はいい。

sambaの共有は、めんどうくさいのでパスワードなしのアクセス自由なモードにしてみた。
最初はファイアウォールが動作しているかチェック
$ sudo iptables -L
$ sudo ufw status
「状態: 非アクティブ」と出れば、動作しておらず外部からアクセス自由の状態。
そしてsambaのインストール

$ sudo apt install samba

インストール終了後、まず、/homeに共有用のフォルダーを作成。
$ sudo mkdir /home/share
アクセスモードを変更
$ sudo chmod 777 /home/share

次に、samba設定ファイルの修正(nano使用)
$ sudo nano /etc/samba/smb.conf

修正したのは以下の所

[global]
unix charset = UTF-8  <ー追加
dos charset = CP932  <ー追加
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = XXX   <ーワークグループ名
# server string is the equivalent of the NT Description field
server string = %h server (Samba, Ubuntu)
netbios name = YYY   <ーネットバイオス名
#### Networking ####
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 127.0.0.0/8 192.168.0.0/24   <ーネットワークの範囲に合わせる
# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
map to guest = bad user    <ーここは#があったら削除

最後の行に追加で共有の設定を書く

[share]
path = /home/share
writable = yes
guest ok = yes
guest only = yes
force create mode = 777
force directory mode = 777

そして、sambaの起動
$ sudo systemctl restart smbd

Windowsマシンに移動して、ネットワークにUbuntuマシンのIPを入れて、フォルダーが見えれば動作OK。

インストール完了後、バックアップデータを書いたりしてテスト中。

今のところ順調に動作。SSD起動よりも若干遅いが、Linuxは軽いので、Windowsのように延々と待たされるほどではない。

 

Ubuntuにsamba – 準備

Ubuntuマシンにsamba稼働の前準備に、この前Windows10 2004のマシンで交換した古~ぃHDDを取付けた。

2TBのHDDは、やはり48個の代替セクタが出ている。

しかし普通にNTFSでマウント出来て中のデータは読める。マウントの設定だけはやっておいた。まず、ギアアイコンにてオプションの設定。

メニューから、「マウントオプション」を選択。

一番上の「ユーザーセッションのデフォルト」をオフにしておく。また、「マウントポイント」を分かりやすい物にしておく。HDDの型番にしておいた。

「表示名」も分かりやすいものにしておく。こちらもHDDの型番にしておいた。

これでNTFSのまま、マウントされて中のファイルも見える。

$ ls /mnt/hds722020 -l
合計 9
drwxrwxrwx 1 root root          0 6月 18 16:07 ‘$RECYCLE.BIN’
drwxrwxrwx 1 root root          0 6月 19 08:29 CASPER
-rwxrwxrwx 1 root root     528 6月 19 08:28 MediaID.bin
drwxrwxrwx 1 root root          0 6月 19 07:55 ‘System Volume Information’
drwxrwxrwx 1 root root  4096 7月   2 19:19  crystalreportviewers12
drwxrwxrwx 1 root root  4096 8月 17 06:55 work2

しかし、sambaでの共有ができるかは不明。なにしろ、sambaでの共有の前準備でやるchown、chmodがうまくゆかない。これは当たり前。Linuxのファイル管理とは違うNTFSのままなのだから。sambaがうまく読み書きできるかが問題。

 

sambaでNAS-補足3

その10回目。補足その3

今回、NASがトラブルになり、CentOS7をSSDにインストールして安定させ、HDDは後で追加してゆくことにした。もしHDDが壊れても、その中のデータは失われるが、他のHDDのデータは生きている。古いHDDばかり集めて使っているので、この苦肉の策となった次第。

そこで、HDDを使えるようにして(Linux、UNIXではマウントと言う)さらには、sambaでも設定して、WindowsPCから読み書き出来るようにする。

昔なら、Linux(UNIX)でHDDをマウントするとなると、mountコマンドを使ったものだ。しかし今はGNOMEのデスクトップアプリでマウントは簡単に管理できる。まずこのディスクアプリを起動する。CentOS7のNASにrootでログインするか、VNCでCentOS7のNASにログインして、「アプリケーション」メニューから「ユーティリティ」を選択、さらに右に表示される「ディスク」をクリック。

すると、現在マウント中のディスクやマウント可能なディスクが表示されるので、左のHDDのリストからマウントするディスクをクリックする。すると右側にそのHDDの様子が表示されるので、中央少し左のギアマークのアイコンをクリックする。もし、新品のHDDの場合はここに「+」ボタンがあると思うので、これでパーティーションを作るところからやることになる。もしWindowsPCなどで使っていたHDDならまず「-」ボタンをクリックしてパーティーションを削除後、「+」ボタンで新たにパーティーションを作る。

すると、HDDの設定のリストが出るので、「マウントオプションの編集」をクリックする。

すると、現在のマウント関連の情報が表示される。基本的には、デスクトップ上でマウント操作をしたときにそのHDDがマウントされるようになっている。これは、USBメモリーなどを刺したとき同じ設定。マウント用の文字も大変長く分かりにくい設定になっているので、それを解除して、sambaの設定時も楽なようにマウント用の文字も分かりやすい物にしておく。

まず、一番上の「User Session Default」をオフにする。その下の「Mount at system startup」にチェックを入れる。そして、「表示名」に分かりやすいHDD名、今回hds7220とHDDの型番にした。さらに、「マウントポイント」の長い文字列を/mnt/以下の部分を分かりやすい文字列に変更しておく。下の例ではHITACHIの2TBのHDDなので、/mnt/hds7220としている。

設定したら「OK」をクリック。この設定したマウントポイントは後でsambaの設定に使うので、記録しておく。

この作業を、マウントしたいHDDごとに行うと、デスクトップにマウントされたHDDのアイコンが出る。

これを、各HDDに対して行う。

続いて、各HDDのマウント先に、samba共有のフォルダーを作っておく。またアクセス権限なども設定しておく。

samba用ディレクトリ作成、オーナーチェンジ
# mkdir /mnt/hds7220/samba
# chown nobody:nobody /mnt/hds7220/samba
# chmod 777 /mnt/hds7220/samba

sambaの設定ファイルをいじる。viを使う場合。
[root@localhost xxx]# vi /etc/samba/smb.conf

publicの設定箇所を増やす。各HDDに共有フォルダーを作ったら、その分だけ書き足すことになる。

[Public01]
comment = hds7220
path = /mnt/hds7220/samba
public = yes
writable = yes
only guest = yes

ディレクトリの作成や権限の設定は、デスクトップからも出来る。マウントされたHDDは普通のディレクトリとしてアクセスできる。

ここで一つ注意点として、マウントされたHDDは最初は読込のみの権限しかないことが多い。この権限を読み書きOKにしておかないと、samba共有後読み書き出来ない。

デスクトップでのディレクトリの選択は、まず左上のホームフォルダーをダブルクリック。そして、「他の場所」をクリック。

すると、コンピュータ内の色々なデバイスが表示されるので、一番上の「コンピュータ」をクリック。

すると、Linuxのシステムのフォルダーが色々表示される。HDDのマウント先である「mnt」フォルダーをダブルクリック。

そして、HDDのフォルダーhds7220を右クリック、メニューの「プロパティ」を選択。

すると、プロパティが表示されるので、「アクセス権」タブをクリック。

「作成と削除」がどれからも出来るようにしておく。

ディスクの利用状況は、「システムモニター」からも見ることができる。「アプリケーション」メニューから、「システムツール」、「システムモニター」と選択する。

「ファイルシステム」タブをクリックするとディスクの利用状況が確認できる。

色々データを書き込んだので、結構な領域を使っている。

 

sambaでNAS-7

その7回目。sambaを動かす

それでは、いよいよsambaのインストールと設定。

NASの本体かTeraTermからログインして、sambaのインストールを行う。NAS本体のログインの場合、rootでログイン、端末を起動する。

TeraTermの場合は、1個作ったユーザーでログインする。そしてsuコマンドでroot権限を取得しておく。

まずはyumでインストール。

[root@localhost xxx]# yum -y install samba

samba用ユーザー(centos)の作成。ここでは仮にcentosというユーザーを作成することにします。ユーザー名は自由に決められます。

[root@localhost ~]# useradd centos

samba用ユーザー(centos)にパスワードを設定

[root@localhost ~]# passwd centos

samba用ユーザー centos のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

samba用ユーザー(centos)の設定

[root@localhost ~]# pdbedit -a centos
new password:
retype new password:
Unix username: centos
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1204239262-578675828-4075209457-1000
Primary Group SID: S-1-5-21-1204239262-578675828-4075209457-513
Full Name:
Home Directory: \\localhost\centos
HomeDir Drive:
・・・ 中略 ・・・

samba用ディレクトリ作成、オーナーチェンジ
[root@localhost xxx]# mkdir /home/samba
[root@localhost xxx]# chown nobody:nobody /home/samba
[root@localhost xxx]# chmod 777 /home/samba

sambaの設定ファイルをいじる。viを使う場合。
[root@localhost xxx]# vi /etc/samba/smb.conf

以下、設定ファイルの内容の変更点
[global]

# Linux側日本語文字コードとWindows側日本語文字コードの設定
unix charset = UTF-8
dos charset = CP932

# Windowsのワークグループの設定と、Windows側からの表示名の設定
workgroup = xxxx
server string = Samba Server Version %v

netbios name = LinuxSamba

#プリンタは使わないので、#でコメントアウトもしくはno設定
#printing = cups
#printcap name = cups
load printers = no
disable spooles
#cups options = raw

# Public公開の設定この部分がWindowsPCから見えるようになる

[public]
comment = Public Stuff
path = /home/samba
public = yes
writable = yes
only guest = yes

以上、設定が終わったら、sambaの起動。smbとnmbの二つがあるので、両方必ず起動する。
[root@localhost xxx]# systemctl start smb
[root@localhost xxx]# systemctl start nmb

そして、sambaの自動起動設定
[root@localhost xxx]# systemctl enable smb
[root@localhost xxx]# systemctl enable nmb

これで、WindowsPCから見えるようなっているはずです。ネットワークから見てみます。ネットワークの所にNASに設定したIPアドレスを入力します。(例。¥¥192.168.xxx.xxx xxx.xxxは設定したIPアドレスに合わせてください)

すると、「ネットワーク資格情報の入力」が表示されるので、作成したsamba用ユーザとパスワードを入力して、「資格情報を記憶する」をチェックしておきます。すると次回から「ネットワーク資格情報の入力」をせずにログインできるようになります。

NAS内が見えたら、publicフォルダー内が自由に読み書き出来るはずなので、フォルダーを作ったりデータを書いたりテストしてみます。

中が見えないとなると、sambaの設定や、ファイアウォールの設定、SElinuxの設定等をもう一度チェックします。

動作が安定してくると、NASに付けた名前でもアクセスできます。ネットワークに表示されるようになります。さらに、HDDをマウントしてpublicフォルダーを追加設定するとこのように見えてきます。

sambaでNAS-1

NASの動作も大体落ち着いて来たので、今回CentOS7のsambaでNASを作成した手順をまとめておきます。

今回はその1回目。下準備。CentOS7インストール用DVDの作成です。

以前もNASを再インストールした時にインストールDVDは作成していたものの、ちょっと時間も経ったので、なるべく新しいバージョンがいいかと、CentOS7のCentOSのHPへダウンしに行った。

CentOSのHPは、https://www.centos.org/

Get CentOS Nowをクリック。すると、どうもCentOSの最新版CentOS8が出ているようだった。Downloadページで、CentOS Linux DVD ISOをクリックすると、

出てくるのは、CentOS8のダウンロード先、

しかし、CentOS8は若干ハードウエアの要求事項が上がっていて、メモリは2GB推奨になっていた。今使っているNASのハードはメモリーが2GBしかなく、オンボードグラフィック用にメモリーを使うと1.6GB程度しかないので、ちょっと厳しい感じだった。

メモリーを増やしてもいいのだが、マザボとCPUの対応メモリーがDDR3-1066なのだが、古すぎてないので、使っているメモリーがDDR3-1333。

これをマザボの各スロットに刺すと4GBにはなるのだが、そうするとなぜだか起動しない。いわゆる相性問題だ。1枚刺しの2GBなら普通に動く。CPUが省電力のPentium G630Tで対応メモリーがDDR3 1066ということも関連しているのかもしれない。

ということで、1つ前の使い慣れたCentOS7の最新版をさがしてみることにした。

またDownloadページに戻って、下へスクロールすると、

Older Versionsという項目があるので、そこの「then click here」のリンクをクリック。するとwikiに飛んで、各バージョンのリストが出る。

ここで、リストを探すと、

あった、CentOS7。一応、バージョンは1908でサポートは2024年7月までとなっている。あと4年はあるので、その頃までマザボやCPUが持つかどうかもわからないし、サポートがなくなっても、LAN内でしか使わないので、CentOS7でこのままいこう。「mirrors」をクリックすると、各ftpのダウンロード先が表示される。いつも理研のサーバーを回線も安定しているので使わせてもらっているので、そこをクリック。

DVD用ISOファイルを選択

ダウンロードが終わるまでしばし待つ。

ダウンが終わったら、ISOファイルから、DVDを作成する。Windows10なら、ISOファイルを右クリックして「ディスクイメージの書き込み」をクリックするとできる。

DVDが書きあがるまで、しばし待つ。

NAS起動せず!!

NASが起動しない。電源をいれてしばらくして、なにやらメッセージが表示される。どうもCentOSが起動に失敗しているようだ。

ブート失敗のメッセージ


そもそも/bootが書かれていたHDDは、SeagateのST2000DL003、2TBで、製造年月日は2011年!!、動いていた時も代替セクターが40個ほどでていた。

左がSeagateの2TBHDD。このHDDからブートするようにしていた。
/bootの割り振りの様子 。40個の不良セクタ!!


NASはバックアップデータが主なので、特には困らないので、しばらくほっておいた。しかし、まったくバックアップしないのも怖いので、修理を始めた。
まず、起動HDDを一番新しい東芝製のDT01ACA050、500GBにした。まあ新しいと言っても2014年製。

今回起動ドライブにしたのは、左の東芝の500GBHDD。少しは新しい2014年製。

さらにいままでは4台のHDDをまとめて1個の論理ドライブにしてCentOSをいれていたが、それはやめて起動ドライブは前述の東芝のHDDにし、他の3個のHDDは別々にマウントして別個のドライブで使うことにした。こうすれば例えば1個HDDが壊れてもそこのデータはなくなるが、他の分は残っているという考え。CentOSを入れ直し、SAMBAで共有をかけて、各HDDにデータを読み書きして、HDDがまだ使えるか具合をみている。

なお、使っているマザーボードはGigabyteのGA-H67M-D2-B3、CPUはインテルのPentium G630T省電力CPU。メモリーは2GBのDDR3-1333。1066で動作。

centos7-samba-2

LAN内のWindowsマシンからはこのように見えるはず。

見えるまで時間がかかる場合もあるので、見えないときはしばらく待つ。または、上のアドレスのところに「¥¥CENTOS7」の様に、sambaのネットバイオス名に指定した文字を直接打ってもいい。

するとユーザー認証になるので、samba用に作成したユーザー名とパスワードを入力する。

「資格情報を記憶する」にチェックを入れておくと、次回からパスワード入力なしでログインできる。セキュリティの面からは入れないほうがいいが。

入力が終わると、NASの中が見えるはず。

これでNASの稼働が無事開始。あとは、データをアップしたりダウンしたりしてみる。

centos7-samba-1

CentOS7にsambaを入れて、NAS機能を持たせる。
まずは、sambaをインストール。CentOS7インストール時に「 ソフトウエアの選択 」から 「サーバー(GUI使用)」をクリック、そして「選択した環境のアドオン」では、「ファイルとストレージサーバー」 を選択していれば、自動的に入っているはずだが、これをチェックを兼ねて。

[root@centos7 ~]# yum install samba
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile

---------- 中略 ----------

パッケージ samba-4.8.3-4.el7.x86_64 はインストール済みか最新バージョンです
何もしません

ちゃんとはいっているようだ。入っていなければ、ここでインストールされるはず。
次に、samba用ディレクトリを作成。 HDDの領域が一番ある/homeに作成。

[root@centos7 ~]# mkdir /home/samba
[root@centos7 ~]# chmod 777 /home/samba

次に、sambaの設定ファイルをいじる。

[root@centos7 ~]# nano /etc/samba/smb.conf

エディターは最近nanoを使いだしたが、もちろんviでもOK。
まずは、[global]セクション。

workgroupの設定(XXXX)はLAN環境に応じて設定してください。
netbios name = CENTOS7 これも自由に設定可
192.168.11.のLAN内からのみアクセスokに。
プリンタは使わないので、止めておく。
[global]
workgroup = EKBT
server string = CentOS7 smb %v
security = user
netbios name = CENTOS7
host allow = 192.168.11.

passdb backend = tdbsam
dos charset = cp932

# printing = cups
# printcap name = cups
load printers = no
disable spooles = yes
# cups options = raw

次に、[Publoc]設定を追加。

[Public]
comment = Nas Public
path = /home/samba
public = yes
writable = yes
guest ok = yes
guest only = yes

これで設定はおわり。一応設定ファイルをチェックしておく。

[root@centos7 ~]# testparm

問題なさそうだったら、続いて、samba用のユーザーを作る。ユーザーはCentOS7インストール時作っているので、それを使用。
また別にユーザーを作ってそれを使ってもいい。

[root@centos7 ~]# pdbedit -a user1

あとはSELinuxがうごいているはずなので、これを止める。
まずは動作状況を確認。

[root@centos7 ~]# getenforce
Enforcing

動いているようだ。
一応動作を止めて、警告のみにする。

[root@centos7 ~]# setenforce 0
[root@centos7 ~]# getenforce
Permissive

LAN内のみのNAS運用の場合は、完全に止めてもいいと思われる。
そのためには、SELinuxの設定ファイルをいじる。

[root@centos7 ~]# nano /etc/sysconfig/selinux

SELINUX=disabledと入力しSELinuxを止める。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted – Targeted processes are protected,
# minimum – Modification of targeted policy. Only selected processes are pr$
# mls – Multi Level Security protection.
SELINUXTYPE=targeted

これでsambaの動作の下準備は終了。sambaを起動する。

[root@centos7 ~]# systemctl start smb
[root@centos7 ~]# systemctl start nmb

sambaは起動ステップが二つあるので両方とも起動する。
さらに、NAS起動時に自動で起動するよう設定。

[root@centos7 ~]# systemctl enable smb
[root@centos7 ~]# systemctl enable nmb

これで、LAN内から見えるようになっているはずなので、LAN内のWindowsマシンに移動して、ネットワークを見てみる。

NAS再々構築-2

HDDの構成を500GBx2、2TBx2に変更。OSの再インスト、samba設定。無事稼働。NAS製プライベートクラウド完成!!

HDD取付状況
今回追加した500GBのHDD
CPUはPentium G630T
4.9TBの容量を確保
2TBHDDには不良セクターが40-50個ほどある。

他PC(Win10マシン)よりは、samba用に割り当てたID、パスワードでログイン。ネットワークドライブを割り当てなおした。

HDDの概要
TOSHIBA DT01ACA050 500GB JUL-2014
HITACHI HDS721050CLA362 500GB JUL-2010
HITACHI HDS722020ALA330 2TB FEB-2010
Seagate ST2000DL003 2TB 2011/7
一番新しくて、5年もの?!。そろそろ壊れてもいいころ。古い奴は9年物。良く動いている。古い2TBのHDDはペンディングセクタが40ー50と出ているがまだ使えている。使用可能とはでているが、いつまでもつかなぁ...。

OSのインストールやsambaの設定等、詳しい内容はそのうちに。