事象発生日:2018-01-06
記事公開日:2018-01-06
アクセス数:76343
自宅サーバーに4TBのHDDを1台増設した.
マザーボードのSATAポートが余っていないため,ちょっと面倒なことになった.
さらにfdiskがGPTに対応していないことも知り,ちょっとどころじゃなく面倒なことになった.
HDDを増設して,SambaでLAN内のWindows PCからファイル共有できるようにするまでの備忘録.
(SMBに対応しているアプリを使えば,Androidでも共有可能)
Ubuntu Server 16.04.2 LTS
Microsoft Windows 10 Home (64bit)
WD40EZRZ-RT2 (HDD)
OWL-PCSPS3U3U2のサポートがWindowsだけなのが少し不安.
HDDを増設したいが,マザーボードのSATAポートが余っていない.
そこで4つの方針を考えた.
まず思いつくのがこれ.
外付けHDDを普通にUSB接続する方法.
エレガントじゃないので却下.
エレガントな方法(?)
HDDのSATA端子をUSBコネクタに変換し,マザーボードに直接接続する方法.
ぱっとみできそうなのだが,SATA - USBコネクタ変換器を探しても見つからなかった.
SATA - USBはプロトコルが違うためコントローラが必須である.そのために変換に外部電源が入りそうなのが原因?
誰か商品化してください....
外付けHDDをPCケース内部に設置し,ケーブル・電源を外に出す.
よさそうだが,排熱の問題と,PCケースを動かしたときにHDDが動いてしまうのが不安.
HDDをPCケースに正規の方法で設置.
そしてSATA - USB A端子に変換してケーブル・電源を外に出す方法.
HDDはPCケースに固定されるので安全.
しかし,PCケースからケーブルともう1つの電源コードがでているのがいまいち.
これでいくことにした.
PCケースに正規の方法でHDDを取り付け,そこにSATA - USB変換コネクタを接続.
ビデオカード用の穴からコードを出し,USBは背面ポートへ接続,電源はコンセントに接続した.
もともとsdaとsdbの2台がすでにマウントされている.
$ sudo fdisk -l Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x5ae2699a デバイス 起動 Start 最後から セクタ Size Id タイプ /dev/sda1 * 2048 3899713535 3899711488 1.8T 83 Linux /dev/sda2 3899715582 3907028991 7313410 3.5G 5 拡張領域 /dev/sda5 3899715584 3907028991 7313408 3.5G 82 Linux スワップ / Solaris Partition 2 does not start on physical sector boundary. Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x0e77186b デバイス 起動 Start 最後から セクタ Size Id タイプ /dev/sdb1 2048 3907029167 3907027120 1.8T 83 Linux $ sudo parted -l モデル: ATA TOSHIBA DT01ACA2 (scsi) ディスク /dev/sda: 2000GB セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 1997GB 1997GB primary ext4 boot 2 1997GB 2000GB 3744MB extended 5 1997GB 2000GB 3744MB logical linux-swap(v1) モデル: ATA ST2000DM001-1ER1 (scsi) ディスク /dev/sdb: 2000GB セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 2000GB 2000GB primary ext3
Partition 2 does not start on physical sector boundary.とでているのが少し気になるところ....
sdcとして認識されている.
$ sudo fdisk -l Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x5ae2699a デバイス 起動 Start 最後から セクタ Size Id タイプ /dev/sda1 * 2048 3899713535 3899711488 1.8T 83 Linux /dev/sda2 3899715582 3907028991 7313410 3.5G 5 拡張領域 /dev/sda5 3899715584 3907028991 7313408 3.5G 82 Linux スワップ / Solaris Partition 2 does not start on physical sector boundary. Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x0e77186b デバイス 起動 Start 最後から セクタ Size Id タイプ /dev/sdb1 2048 3907029167 3907027120 1.8T 83 Linux Disk /dev/sdc: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes $ sudo parted -l モデル: ATA TOSHIBA DT01ACA2 (scsi) ディスク /dev/sda: 2000GB セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 1997GB 1997GB primary ext4 boot 2 1997GB 2000GB 3744MB extended 5 1997GB 2000GB 3744MB logical linux-swap(v1) モデル: ATA ST2000DM001-1ER1 (scsi) ディスク /dev/sdb: 2000GB セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 2000GB 2000GB primary ext3 エラー: /dev/sdc: ディスクラベルが認識できません。 モデル: WDC WD40 EZRZ-00GXCB0 (scsi) ディスク /dev/sdc: 4001GB セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: unknown ディスクフラグ:
fdiskは2TB以下のパーティションしか扱えないMBR (Master Boot Record) にしか対応していない.
そこでGPT (GUID Partition Table) に対応しているpartedを使う.
$ sudo parted /dev/sdc GNU Parted 3.2 /dev/sdc を使用 GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。 (parted) p エラー: /dev/sdc: ディスクラベルが認識できません。 モデル: WDC WD40 EZRZ-00GXCB0 (scsi) ディスク /dev/sdc: 4001GB セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: unknown ディスクフラグ: (parted) mkpart primary エラー: /dev/sdc: ディスクラベルが認識できません。 (parted) mklabel gpt (parted) p モデル: WDC WD40 EZRZ-00GXCB0 (scsi) ディスク /dev/sdc: 4001GB セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: gpt ディスクフラグ: 番号 開始 終了 サイズ ファイルシステム 名前 フラグ (parted) mkpart primary ファイルシステムの種類? [ext2]? ext4 開始? 0% 終了? 100% (parted) p モデル: WDC WD40 EZRZ-00GXCB0 (scsi) ディスク /dev/sdc: 4001GB セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: gpt ディスクフラグ: 番号 開始 終了 サイズ ファイルシステム 名前 フラグ 1 1049kB 4001GB 4001GB ext4 primary (parted) q 通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
12行目で失敗しているが,はじめにディスクラベルを作らないといけなかったらしい.
26, 27行目では,パーティション境界をサイズではなくパーセントで指定してる.
デフォルトではアライメントタイプはoptimal、ユニットはcompact(MB 指定と可読性の高い表示)になっています。この場合、開始位置に0を指定するとアライメントが正しくないというエラーになります。これは1を指定するか、unitコマンドで単位をGBや%などに変更したり、開始位置の指定を0Gもしくは0%などで指定するとことで開始位置が2048sになりエラーが出なくなります。アライメントタイプは起動時のオプション-a minimal等で変更ができます。
とあったため,パーセント指定にした.
適当にフォーマットする.
$ sudo mkfs.ext4 /dev/sdc1
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 976754176 4k blocks and 244195328 inodes
Filesystem UUID: b57dea59-51b0-4a83-b3c1-6f493237dbca
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
$ sudo parted -l
モデル: ATA TOSHIBA DT01ACA2 (scsi)
ディスク /dev/sda: 2000GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 1997GB 1997GB primary ext4 boot
2 1997GB 2000GB 3744MB extended
5 1997GB 2000GB 3744MB logical linux-swap(v1)
モデル: ATA ST2000DM001-1ER1 (scsi)
ディスク /dev/sdb: 2000GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 2000GB 2000GB primary ext3
モデル: WDC WD40 EZRZ-00GXCB0 (scsi)
ディスク /dev/sdc: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 4001GB 4001GB ext4 primary
$ sudo fdisk -l
Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x5ae2699a
デバイス 起動 Start 最後から セクタ Size Id タイプ
/dev/sda1 * 2048 3899713535 3899711488 1.8T 83 Linux
/dev/sda2 3899715582 3907028991 7313410 3.5G 5 拡張領域
/dev/sda5 3899715584 3907028991 7313408 3.5G 82 Linux スワップ / Solaris
Partition 2 does not start on physical sector boundary.
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x0e77186b
デバイス 起動 Start 最後から セクタ Size Id タイプ
/dev/sdb1 2048 3907029167 3907027120 1.8T 83 Linux
Disk /dev/sdc: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F838B351-77F3-4D16-BD42-B715BFD75F9B
デバイス Start 最後から セクタ Size タイプ
/dev/sdc1 2048 7814035455 7814033408 3.7T Linux filesystem
$ sudo tune2fs -l /dev/sdc1
tune2fs 1.42.13 (17-May-2015)
Filesystem volume name:
Last mounted on:
Filesystem UUID: b57dea59-51b0-4a83-b3c1-6f493237dbca
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 244195328
Block count: 976754176
Reserved block count: 48837708
Free blocks: 961377026
Free inodes: 244195317
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 791
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Sun Jan 7 04:47:10 2018
Last mount time: n/a
Last write time: Sun Jan 7 04:47:11 2018
Mount count: 0
Maximum mount count: -1
Last checked: Sun Jan 7 04:47:10 2018
Check interval: 0 ()
Lifetime writes: 139 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: ff0fe011-9ed9-4bd5-8709-b6526156d494
Journal backup: inode blocks
適当にフォーマットしたら,ファイルシステムの予約ブロックが全容量の5%ほどできてしまったので,やり直し.
$ sudo mkfs.ext4 -m 0 /dev/sdc1
mke2fs 1.42.13 (17-May-2015)
/dev/sdc1 contains a ext4 file system
created on Sun Jan 7 04:47:10 2018
Proceed anyway? (y,n) y
Creating filesystem with 976754176 4k blocks and 244195328 inodes
Filesystem UUID: aa2f7c92-ba82-451c-a8d6-8173eac409aa
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
$ sudo parted -l
モデル: ATA TOSHIBA DT01ACA2 (scsi)
ディスク /dev/sda: 2000GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 1997GB 1997GB primary ext4 boot
2 1997GB 2000GB 3744MB extended
5 1997GB 2000GB 3744MB logical linux-swap(v1)
モデル: ATA ST2000DM001-1ER1 (scsi)
ディスク /dev/sdb: 2000GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 2000GB 2000GB primary ext3
モデル: WDC WD40 EZRZ-00GXCB0 (scsi)
ディスク /dev/sdc: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 4001GB 4001GB ext4 primary
$ sudo fdisk -l
Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x5ae2699a
デバイス 起動 Start 最後から セクタ Size Id タイプ
/dev/sda1 * 2048 3899713535 3899711488 1.8T 83 Linux
/dev/sda2 3899715582 3907028991 7313410 3.5G 5 拡張領域
/dev/sda5 3899715584 3907028991 7313408 3.5G 82 Linux スワップ / Solaris
Partition 2 does not start on physical sector boundary.
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x0e77186b
デバイス 起動 Start 最後から セクタ Size Id タイプ
/dev/sdb1 2048 3907029167 3907027120 1.8T 83 Linux
Disk /dev/sdc: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F838B351-77F3-4D16-BD42-B715BFD75F9B
デバイス Start 最後から セクタ Size タイプ
/dev/sdc1 2048 7814035455 7814033408 3.7T Linux filesystem
$ sudo tune2fs -l /dev/sdc1
tune2fs 1.42.13 (17-May-2015)
Filesystem volume name:
Last mounted on:
Filesystem UUID: aa2f7c92-ba82-451c-a8d6-8173eac409aa
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 244195328
Block count: 976754176
Reserved block count: 0
Free blocks: 961377026
Free inodes: 244195317
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 791
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Sun Jan 7 04:52:05 2018
Last mount time: n/a
Last write time: Sun Jan 7 04:52:05 2018
Mount count: 0
Maximum mount count: -1
Last checked: Sun Jan 7 04:52:05 2018
Check interval: 0 ()
Lifetime writes: 139 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 08835ad9-73ac-4388-bf88-ede15d04fa22
Journal backup: inode blocks
マウントポイントの作成し,マウント.
$ cd /mnt/ $ sudo mkdir disk2 $ sudo mount -t ext4 /dev/sdc1 /mnt/disk2
フォーマット時にも表示されたが,一応再度UUIDの確認.
$ sudo blkid /dev/sdc1 /dev/sdc1: UUID="aa2f7c92-ba82-451c-a8d6-8173eac409aa" TYPE="ext4" PARTLABEL="primary" PARTUUID="4687c89a-ab76-408f-aa10-9d61766e8234"
fstabに登録する.
$ sudo nano /etc/fstab # 以下2行を追記 # third disk for samba UUID=aa2f7c92-ba82-451c-a8d6-8173eac409aa /mnt/disk2/ ext4 defaults,nofail 0 0
再起動してもマウントされていればOK.
すでにSambaは運用済みであるので,共有フォルダを追加した.
$ cd /mnt/disk2/
$ sudo mkdir share3
$ sudo chown ${samba_user}:${samba_user} share3/
$ sudo chmod 777 share3/
$ sudo nano /etc/samba/smb.conf
# 以下8行を追記
[share3]
comment = Shared folder
path = /mnt/disk2/share3
guest ok = no
guest only = no
writable = yes
create mode = 0777
directory mode = 0777
$ sudo testparm
$ sudo service smbd restart
$ sudo service nmbd restart
$ sudo reboot
subst W: \\${network_address}\share3
のようなバッチファイルを組めばWindowsのマイコンピュータに共有フォルダがマウントされる.
なお,smb.confで設定したSambaのアクセスユーザー,PWがWindowsログインユーザー,PWと同一であれば認証を自動的に通過することが可能である.
(これ,原理どうなってんだ? Windows SystemはPWを平文で保持しているってこと?)
名前
Email (※公開されることはありません)
コメント