20201011のLinuxに関する記事は11件です。

ディスクを追加してLVMのSWAP領域と/home領域を拡張する

やりたいこと

新規追加したディスク(20GB)に物理ボリュームを作成し、swapと/homeの論理ボリュームサイズを+10GBずつ拡張する。

環境

・仮想化ソフト:vmware workstation
・OS:CentOS 6.5

注意点

今回は/swapと/homeの論理ボリュームサイズの拡張なのでOSがオンラインの状態で作業できますが、/(root)の論理ボリュームサイズを縮小する場合はLIVECDをを使用して、レスキューモードで設定する必要があります。

事前状況確認

ファイルシステム確認

[root@localhost ~]# df -hTP
Filesystem                     Type     Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-lv_root ext4      37G  3.4G   32G  10% /
tmpfs                          tmpfs    931M  228K  931M   1% /dev/shm
/dev/sda1                      ext4     504M   46M  434M  10% /boot
/dev/mapper/VolGroup01-lv_home ext4     190M  6.4M  174M   4% /home
/dev/sr0                       iso9660  4.2G  4.2G     0 100% /media/CentOS_6.5_Final

ブロックデバイス確認

sdcが新規追加したディスク(20GB)

[root@localhost ~]# lsblk
NAME                          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                            11:0    1  4.2G  0 rom  /media/CentOS_6.5_Final
sr1                            11:1    1 1024M  0 rom
sda                             8:0    0   40G  0 disk
 sda1                          8:1    0  512M  0 part /boot
 sda2                          8:2    0 39.5G  0 part
   VolGroup00-lv_root (dm-0) 253:0    0 37.5G  0 lvm  /
   VolGroup00-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]sdb                             8:16   0   20G  0 disk
 sdb1                          8:17   0  200M  0 part
   VolGroup01-lv_home (dm-2) 253:2    0  196M  0 lvm  /home
sdc                             8:32   0   20G  0 disk

パーティション確認

[root@localhost ~]# fdisk -l

ディスク /dev/sda: 42.9 GB, 42949672960 バイト
ヘッド 255, セクタ 63, シリンダ 5221
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00020db8

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *           1          66      524288   83  Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2              66        5222    41417728   8e  Linux LVM

ディスク /dev/sdb: 21.5 GB, 21474836480 バイト
ヘッド 160, セクタ 6, シリンダ 43690
Units = シリンダ数 of 960 * 512 = 491520 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x0002c5b0

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdb1               3         429      204800   8e  Linux LVM

ディスク /dev/sdc: 21.5 GB, 21474836480 バイト
ヘッド 255, セクタ 63, シリンダ 2610
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00037b08

デバイス ブート      始点        終点     ブロック   Id  システム

ディスク /dev/mapper/VolGroup00-lv_root: 40.3 GB, 40261124096 バイト
ヘッド 255, セクタ 63, シリンダ 4894
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000


ディスク /dev/mapper/VolGroup00-lv_swap: 2147 MB, 2147483648 バイト
ヘッド 255, セクタ 63, シリンダ 261
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000


ディスク /dev/mapper/VolGroup01-lv_home: 205 MB, 205520896 バイト
ヘッド 255, セクタ 63, シリンダ 24
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

パーティション作成

[root@localhost ~]# fdisk /dev/sdc

警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
      強く推奨します。 and change display units to
         sectors (command 'u').

コマンド (m でヘルプ): m
コマンドの動作
   a   ブート可能フラグをつける
   b   bsd ディスクラベルを編集する
   c   dos 互換フラグをつける
   d   領域を削除する
   l   既知の領域タイプをリスト表示する
   m   このメニューを表示する
   n   新たに領域を作成する
   o   新たに空の DOS 領域テーブルを作成する
   p   領域テーブルを表示する
   q   変更を保存せずに終了する
   s   空の Sun ディスクラベルを作成する
   t   領域のシステム ID を変更する
   u   表示/項目ユニットを変更する
   v   領域テーブルを照合する
   w   テーブルをディスクに書き込み、終了する
   x   特別な機能 (エキスパート専用)

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 1
最初 シリンダ (1-2610, 初期値 1):
初期値 1 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-2610, 初期値 2610): +10G

コマンド (m でヘルプ): t
選択した領域 1
16進数コード (L コマンドでコードリスト表示): L

 0  空             24  NEC DOS         81  Minix / 古い  bf  Solaris
 1  FAT12           39  Plan 9          82  Linux スワッ c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 隠し C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux 拡張領 c7  Syrinx
 5  拡張領域    42  SFS             86  NTFS ボリュ  da  非 FS デー
 6  FAT16           4d  QNX4.x          87  NTFS ボリュ  db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux プレー de  Dell ユーテ
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt
 9  AIX ブート   50  OnTrack DM      93  Amoeba          e1  DOS access
 a  OS/2 ブート  51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad    eb  BeOS fs
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT
 f  W95 拡張領   55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC
11  隠し FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor
12  Compaq 診断   61  SpeedStor       a9  NetBSD          f4  SpeedStor
14  隠し FAT16 <3 63  GNU HURD また ab  Darwin ブー   f2  DOS セカン
16  隠し FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS
17  隠し HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI スワッ  fd  Linux raid 自
1b  隠し W95 FAT3 75  PC/IX           bb  隠し Boot Wiz fe  LANstep
1c  隠し W95 FAT3 80  古い Minix    be  Solaris ブー  ff  BBT
1e  隠し W95 FAT1
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました

コマンド (m でヘルプ): p

ディスク /dev/sdc: 21.5 GB, 21474836480 バイト
ヘッド 255, セクタ 63, シリンダ 2610
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00037b08

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdc1               1        1306    10490413+  8e  Linux LVM

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 2
最初 シリンダ (1307-2610, 初期値 1307):
初期値 1307 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1307-2610, 初期値 2610):
初期値 2610 を使います

コマンド (m でヘルプ): t
パーティション番号 (1-4): 2
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 2 から 8e (Linux LVM) に変更しました

コマンド (m でヘルプ): p

ディスク /dev/sdc: 21.5 GB, 21474836480 バイト
ヘッド 255, セクタ 63, シリンダ 2610
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00037b08

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdc1               1        1306    10490413+  8e  Linux LVM
/dev/sdc2            1307        2610    10474380   8e  Linux LVM

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

PV(物理ボリューム)作成

[root@localhost ~]# pvscan
  PV /dev/sdb1   VG VolGroup01   lvm2 [196.00 MiB / 0    free]
  PV /dev/sda2   VG VolGroup00   lvm2 [39.50 GiB / 0    free]
  Total: 2 [39.69 GiB] / in use: 2 [39.69 GiB] / in no VG: 0 [0   ]
[root@localhost ~]#
[root@localhost ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created
[root@localhost ~]# pvcreate /dev/sdc2
  Physical volume "/dev/sdc2" successfully created
[root@localhost ~]#
[root@localhost ~]# pvscan
  PV /dev/sdb1   VG VolGroup01      lvm2 [196.00 MiB / 0    free]
  PV /dev/sda2   VG VolGroup00      lvm2 [39.50 GiB / 0    free]
  PV /dev/sdc1                      lvm2 [10.00 GiB]
  PV /dev/sdc2                      lvm2 [9.99 GiB]
  Total: 4 [59.68 GiB] / in use: 2 [39.69 GiB] / in no VG: 2 [19.99 GiB]

ボリュームグループ(VG)に物理ボリューム(PV)を追加する

[root@localhost ~]# vgdisplay -v
    Finding all volume groups
    Finding volume group "VolGroup01"
  --- Volume group ---
  VG Name               VolGroup01
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               196.00 MiB
  PE Size               4.00 MiB
  Total PE              49
  Alloc PE / Size       49 / 196.00 MiB
  Free  PE / Size       0 / 0
  VG UUID               QAWvr5-edqd-EYtc-Leo7-0nRW-8S46-31Sg2l

  --- Logical volume ---
  LV Path                /dev/VolGroup01/lv_home
  LV Name                lv_home
  VG Name                VolGroup01
  LV UUID                8HafSX-cnNI-bz1d-lo2c-L9Nj-IYZq-ibKVKM
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2020-10-11 14:15:41 +0900
  LV Status              available
  # open                 1
  LV Size                196.00 MiB
  Current LE             49
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Physical volumes ---
  PV Name               /dev/sdb1
  PV UUID               pGnDqB-jr3Z-BTXr-K2PS-INvP-5DRo-Gj2Uqf
  PV Status             allocatable
  Total PE / Free PE    49 / 0

    Finding volume group "VolGroup00"
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               39.50 GiB
  PE Size               4.00 MiB
  Total PE              10111
  Alloc PE / Size       10111 / 39.50 GiB
  Free  PE / Size       0 / 0
  VG UUID               z9HJFE-UYsB-xLif-pnAb-Th5P-NE2f-d4CVKc

  --- Logical volume ---
  LV Path                /dev/VolGroup00/lv_root
  LV Name                lv_root
  VG Name                VolGroup00
  LV UUID                jY98Rj-yCdd-MWNX-iVZe-OPuH-Hqyc-adjd9T
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2020-10-11 14:15:36 +0900
  LV Status              available
  # open                 1
  LV Size                37.50 GiB
  Current LE             9599
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/VolGroup00/lv_swap
  LV Name                lv_swap
  VG Name                VolGroup00
  LV UUID                72hHcq-qtUB-SeVK-3BwO-sgde-2is0-95lgZD
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2020-10-11 14:15:41 +0900
  LV Status              available
  # open                 1
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Physical volumes ---
  PV Name               /dev/sda2
  PV UUID               diLbku-oX9J-KCct-WYWe-Qt1w-EPlm-VKz2uc
  PV Status             allocatable
  Total PE / Free PE    10111 / 0

[root@localhost ~]#
[root@localhost ~]# vgextend VolGroup00 /dev/sdc1
  Volume group "VolGroup00" successfully extended
[root@localhost ~]#
[root@localhost ~]# vgextend VolGroup01 /dev/sdc2
  Volume group "VolGroup01" successfully extended
[root@localhost ~]#
[root@localhost ~]# pvscan
  PV /dev/sdb1   VG VolGroup01   lvm2 [196.00 MiB / 0    free]
  PV /dev/sdc2   VG VolGroup01   lvm2 [9.98 GiB / 9.98 GiB free]
  PV /dev/sda2   VG VolGroup00   lvm2 [39.50 GiB / 0    free]
  PV /dev/sdc1   VG VolGroup00   lvm2 [10.00 GiB / 10.00 GiB free]
  Total: 4 [59.67 GiB] / in use: 4 [59.67 GiB] / in no VG: 0 [0   ]

論理ボリュームの拡張

物理ボリュームを追加してサイズが増えた各VGから、空き容量分をlv_swapとlv_homeに割り当てます。

[root@localhost ~]# lvextend -l +100%FREE /dev/VolGroup00/lv_swap
  Extending logical volume lv_swap to 12.00 GiB
  Logical volume lv_swap successfully resized
[root@localhost ~]#
[root@localhost ~]# lvextend -l +100%FREE /dev/VolGroup01/lv_home
  Extending logical volume lv_home to 10.18 GiB
  Logical volume lv_home successfully resized
[root@localhost ~]#
[root@localhost ~]# vgdisplay -v
    Finding all volume groups
    Finding volume group "VolGroup01"
  --- Volume group ---
  VG Name               VolGroup01
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               10.18 GiB
  PE Size               4.00 MiB
  Total PE              2605
  Alloc PE / Size       2605 / 10.18 GiB
  Free  PE / Size       0 / 0
  VG UUID               QAWvr5-edqd-EYtc-Leo7-0nRW-8S46-31Sg2l

  --- Logical volume ---
  LV Path                /dev/VolGroup01/lv_home
  LV Name                lv_home
  VG Name                VolGroup01
  LV UUID                8HafSX-cnNI-bz1d-lo2c-L9Nj-IYZq-ibKVKM
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2020-10-11 14:15:41 +0900
  LV Status              available
  # open                 1
  LV Size                10.18 GiB
  Current LE             2605
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Physical volumes ---
  PV Name               /dev/sdb1
  PV UUID               pGnDqB-jr3Z-BTXr-K2PS-INvP-5DRo-Gj2Uqf
  PV Status             allocatable
  Total PE / Free PE    49 / 0

  PV Name               /dev/sdc2
  PV UUID               UPwbu0-Cz8w-us7p-sfOv-GET0-orys-ZSAPu8
  PV Status             allocatable
  Total PE / Free PE    2556 / 0

    Finding volume group "VolGroup00"
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               49.50 GiB
  PE Size               4.00 MiB
  Total PE              12671
  Alloc PE / Size       12671 / 49.50 GiB
  Free  PE / Size       0 / 0
  VG UUID               z9HJFE-UYsB-xLif-pnAb-Th5P-NE2f-d4CVKc

  --- Logical volume ---
  LV Path                /dev/VolGroup00/lv_root
  LV Name                lv_root
  VG Name                VolGroup00
  LV UUID                jY98Rj-yCdd-MWNX-iVZe-OPuH-Hqyc-adjd9T
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2020-10-11 14:15:36 +0900
  LV Status              available
  # open                 1
  LV Size                37.50 GiB
  Current LE             9599
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/VolGroup00/lv_swap
  LV Name                lv_swap
  VG Name                VolGroup00
  LV UUID                72hHcq-qtUB-SeVK-3BwO-sgde-2is0-95lgZD
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2020-10-11 14:15:41 +0900
  LV Status              available
  # open                 1
  LV Size                12.00 GiB
  Current LE             3072
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Physical volumes ---
  PV Name               /dev/sda2
  PV UUID               diLbku-oX9J-KCct-WYWe-Qt1w-EPlm-VKz2uc
  PV Status             allocatable
  Total PE / Free PE    10111 / 0

  PV Name               /dev/sdc1
  PV UUID               B2lv0h-sEz7-fYQ3-nZel-HTkI-O8jS-gUd7Is
  PV Status             allocatable
  Total PE / Free PE    2560 / 0

[root@localhost ~]#
[root@localhost ~]# lvscan
  ACTIVE            '/dev/VolGroup01/lv_home' [10.18 GiB] inherit
  ACTIVE            '/dev/VolGroup00/lv_root' [37.50 GiB] inherit
  ACTIVE            '/dev/VolGroup00/lv_swap' [12.00 GiB] inherit
[root@localhost ~]#
[root@localhost ~]# lsblk
NAME                          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                            11:0    1  4.2G  0 rom  /media/CentOS_6.5_Final
sr1                            11:1    1 1024M  0 rom
sda                             8:0    0   40G  0 disk
tqsda1                          8:1    0  512M  0 part /boot
mqsda2                          8:2    0 39.5G  0 part
  tqVolGroup00-lv_root (dm-0) 253:0    0 37.5G  0 lvm  /
  mqVolGroup00-lv_swap (dm-1) 253:1    0   12G  0 lvm  [SWAP]
sdb                             8:16   0   20G  0 disk
mqsdb1                          8:17   0  200M  0 part
  mqVolGroup01-lv_home (dm-2) 253:2    0 10.2G  0 lvm  /home
sdc                             8:32   0   20G  0 disk
tqsdc1                          8:33   0   10G  0 part
x mqVolGroup00-lv_swap (dm-1) 253:1    0   12G  0 lvm  [SWAP]
mqsdc2                          8:34   0   10G  0 part
  mqVolGroup01-lv_home (dm-2) 253:2    0 10.2G  0 lvm  /home

SWAP領域の拡張(再フォーマット)

[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1861        526       1335          0         24        179
-/+ buffers/cache:        321       1539
Swap:         2047          0       2047
[root@localhost ~]#
[root@localhost ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097144 0       -1
[root@localhost ~]#
[root@localhost ~]# swapoff /dev/VolGroup00/lv_swap
[root@localhost ~]#
[root@localhost ~]# mkswap /dev/VolGroup00/lv_swap
mkswap: /dev/VolGroup00/lv_swap: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
スワップ空間バージョン1を設定します、サイズ = 12582908 KiB
ラベルはありません, UUID=81e2aa64-c5eb-4247-b705-311fed3e707a
[root@localhost ~]#
[root@localhost ~]# swapon /dev/VolGroup00/lv_swap
[root@localhost ~]#
[root@localhost ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       12582904        0       -1
[root@localhost ~]#
[root@localhost ~]# lsblk
NAME                          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                            11:0    1  4.2G  0 rom  /media/CentOS_6.5_Final
sr1                            11:1    1 1024M  0 rom
sda                             8:0    0   40G  0 disk
tqsda1                          8:1    0  512M  0 part /boot
mqsda2                          8:2    0 39.5G  0 part
  tqVolGroup00-lv_root (dm-0) 253:0    0 37.5G  0 lvm  /
  mqVolGroup00-lv_swap (dm-1) 253:1    0   12G  0 lvm  [SWAP]
sdb                             8:16   0   20G  0 disk
mqsdb1                          8:17   0  200M  0 part
  mqVolGroup01-lv_home (dm-2) 253:2    0 10.2G  0 lvm  /home
sdc                             8:32   0   20G  0 disk
tqsdc1                          8:33   0   10G  0 part
x mqVolGroup00-lv_swap (dm-1) 253:1    0   12G  0 lvm  [SWAP]
mqsdc2                          8:34   0   10G  0 part
  mqVolGroup01-lv_home (dm-2) 253:2    0 10.2G  0 lvm  /home
[root@localhost ~]#
[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1861        534       1327          0         24        179
-/+ buffers/cache:        329       1532
Swap:        12287          0      12287

swap領域サイズが拡張されたことを確認。

/homeファイルシステムのリサイズ

[root@localhost ~]# df -hTP
Filesystem                     Type     Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-lv_root ext4      37G  3.4G   32G  10% /
tmpfs                          tmpfs    931M  228K  931M   1% /dev/shm
/dev/sda1                      ext4     504M   46M  434M  10% /boot
/dev/mapper/VolGroup01-lv_home ext4     190M  6.4M  174M   4% /home
/dev/sr0                       iso9660  4.2G  4.2G     0 100% /media/CentOS_6.5_Final
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# resize2fs /dev/VolGroup01/lv_home
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup01/lv_home is mounted on /home; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 41
Performing an on-line resize of /dev/VolGroup01/lv_home to 10670080 (1k) blocks.
The filesystem on /dev/VolGroup01/lv_home is now 10670080 blocks long.
[root@localhost ~]#
[root@localhost ~]# df -hTP
Filesystem                     Type     Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-lv_root ext4      37G  3.4G   32G  10% /
tmpfs                          tmpfs    931M  228K  931M   1% /dev/shm
/dev/sda1                      ext4     504M   46M  434M  10% /boot
/dev/mapper/VolGroup01-lv_home ext4     9.9G  8.1M  9.4G   1% /home
/dev/sr0                       iso9660  4.2G  4.2G     0 100% /media/CentOS_6.5_Final

/home領域サイズが拡張されたことを確認。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

設定ファイルの読み込み有無を分かりやすく確認

一般ユーザでnodenvをインストールしてパスを通した後
ちょっとrootで用があってroot→一般に戻った時

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo su 
[root@ip-xxx-xxx-xxx-xxx ec2-user]# su shindev

[shindev@ip-xxx-xxx-xxx-xxx ec2-user]# cd
[shindev@ip-xxx-xxx-xxx-xxx ~]# git clone nodenv〜
[shindev@ip-xxx-xxx-xxx-xxx ~]# vi ~/.bash_profile
#PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.nodenv/bin
#export PATH
#eval "$(nodenv init -)"
#これを追記してnodenvのパスを通した
[shindev@ip-xxx-xxx-xxx-xxx ~]# source ~/.bash_profile
[shindev@ip-xxx-xxx-xxx-xxx ~]# nodenv -v
nodenv 1.4.0+3.631d0b6 #パス通った
[shindev@ip-xxx-xxx-xxx-xxx ~]# exit

[root@ip-xxx-xxx-xxx-xxx ec2-user]# 
#ちょっと用を済ませる
[root@ip-xxx-xxx-xxx-xxx ec2-user]# su shindev
#もう1回一般ユーザにスイッチ
[shindev@ip-xxx-xxx-xxx-xxx ec2-user]# 
[shindev@ip-xxx-xxx-xxx-xxx ~]# nodenv -v
bash: nodenv: コマンドが見つかりません #あら??

bash_profileにバスを通すコマンド入れてるはずなのに読み込まれてない〜
そう言えばbashrcとbash_profileってどういう条件で読まれるのかよく分かってないので
真面目に調べてみる。

確認方法

なんのこっちゃないけど各ファイルにechoコマンドを追記。

bashrc
# .bashrc
echo "~/.bashrc loaded" #これを追記
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
bash_profile
# .bash_profile
echo "~/.bash_profile loaded" #これを追記
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.nodenv/bin
export PATH
eval "$(nodenv init -)"

これをやっといて一旦rootになってsuコマンドで切り替えてみる。

[root@ip-XXX-XXX-XXX-XXX ~]# su shindev
~/.bashrc loaded #bashrcだけ読まれた
[shindev@ip-XXX-XXX-XXX-XXX root]$ 

あれ、じゃprofileは??

[root@ip-XXX-XXX-XXX-XXX ~]# su - shindev #ハイフン付きスイッチ
最終ログイン: 2020/10/11 () 17:12:21 JST日時 pts/0
~/.bash_profile loaded #読まれた!
~/.bashrc loaded
[shindev@ip-XXX-XXX-XXX-XXX ~]$ 

ということでした。
suコマンドのハイフンありなしは切り替え後のカレントパスが
そのままか切り替えユーザのホームディレクトリに移動するくらいの認識だったけど、
ちゃんと考えてやらないといけないレベルの話だった。

ハイフン無しはインパーソネートなノリなので
いつもの作業的には基本ハイフンありでやるべきだなと。

おわり。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

TensorBoard 2.2.1 at http://localhost:6006/

$ tensorboard --logdir ./results

と打ち、

TensorBoard 2.2.1 at http://localhost:6006/ (Press CTRL+C to quit)

が出力されたが、
http://localhost:6006/tensorboardが見れないとき

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

TensorBoard at http://localhost:6006/

$ tensorboard --logdir ./

と打ち、

TensorBoard 2.2.1 at http://localhost:6006/ (Press CTRL+C to quit)

が出力されたが、
http://localhost:6006/tensorboardが見れないとき。

環境

自分のPCはwindows
リモートサーバーはlinux

経緯

puttyを使いリモートログインをしてサーバーにログインした。
そこでtensorboardを使った。
アウトプットされたサイトにアクセスできなかった

解決策前提

userremoteサーバーserverを使ってリモートログインする。

remote@server's password:passward

現在のディレクトリに入っているtensorboardを起動。

[remote@server ~]$ tensorboard --logdir ./
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.2.1 at http://localhost:6006/ (Press CTRL+C to quit)

解決策

あなたのPCのターミナルを開く。
ssh.jpg

useruserのコマンドプロンプトを開く。このuser名は例。
そして以下のように入力する。

C:\Users\user>ssh -L (ポート番号):localhost:6006 (リモート側のuser名)@(リモート側のサーバーのIPアドレス)

(ポート番号)には49513~65535のような空いているポート番号。
(リモート側のuser名)remoteのような名前
(リモート側のサーバーのIPアドレス)987.098.082.99 のような数字

上記のコードをコマンドプロンプトに打ち込むことで、
http://localhost:(ポート番号)/
からtensorflowが見れる。

私の場合

C:\Users\user>ssh -L 49513:localhost:6006 remote@987.098.082.99

http://localhost:49513/からtensorboardが見れる。

補足
(リモート側のサーバーのIPアドレス)は非常にプライベートな数字である。
もし自分のサーバーでない他のサーバーにリモートログインするとき、(リモート側のサーバーのIPアドレス)は見れないようになっている時がある。
そのときは、そのサーバーの管理者に(リモート側のサーバーのIPアドレス)を聞こう。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

LinuxコマンドでたくさんのZIP圧縮されたファイルを解凍してUTF8にしてくっつける

以下のような一見すると面倒そうだなと思えるファイル群に出会ったんですが、思ったよりも簡単に全ファイルを解凍して、 UTF8 に変換して 1 つのファイルにまとめちゃうってことができたのでメモです。

  • ZIP ファイルがたくさんある
  • その ZIP ファイルの中には複数の CSV ファイルが入っている
  • 解凍後のファイル名は SJIS になっている
  • 解凍後のファイルの中身は SJIS で書かれている、改行コードは CRLF
  • でも 1 つあたりの CSV ファイルサイズはそんなに大きくない
  • レコード中に登録NO(UID)や登録日時、登録者IDといった項目があってレコードの重複はないハズなのに重複したレコードがある。 > システムからのダウンロードを手作業で行ってて、重複してダウンロードしてしまうとかは良くある話。

環境

  • Lubuntu 16.04(64bit)
  • メモリ 4G

バックアップは絶対

間違って元の zip ファイルを削除してしまったり、上書きしてしまっても良いようにバックアップをとっておきます。大丈夫、大丈夫と思っても大丈夫じゃないことがありますので必ず行いましょう。

まずは解凍

まずはたくさんある ZIP ファイルをまとめて解凍します。これは find コマンドを使えば簡単にできます。 -j をつけることでディレクトリ構造を無視して解凍、その際にファイル名が重複しても上書きされないようにするために -B オプションをつけています。

unzip-O sjis を指定することでファイル名を SJIS に変換できるみたいなんですが、うまく行かない場面に何度が遭遇したことがあるのでココでは使っていません。

ZIPファイルの解凍
mkdir work #作業用ディレクトリの作成
cd work
find ../ -name '*.zip' -exec unzip -j -B {} \;

find じゃなくて lsxargs を使う方法もあります。

ZIPファイルの解凍(lsとxargsを使用)
mkdir work #作業用ディレクトリの作成
cd work
ls ../*.zip | xargs -I{} unzip -j -B {}

ZIPファイルが入れ子になっている場合は?

ZIP ファイルをしたらその中にまた ZIP ファイルが入ってた。ってこともよくある話なんですが、その場合は以下のようにして再度解凍しちゃいます。解凍したらまた ZIP ファイルが出てきたら更に実行てな感じで不安がなくなるまで実行しちゃいます。実行すれば実行するほどファイルが増えて重複も増えちゃうんですが、あとで重複レコードは削除する予定なので、この時点では何回実行して重複ができてしまっても問題はないかなと思います。

*.zip みたいに指定しないのは ZIP 形式以外のファイルは解凍できずにエラーになるだけなので別に良いかなと思うのと、過去にファイル名が SJIS で文字化けしていたからか *.zip でヒットしないことがあったためです。

ZIPファイルの解凍(ZIPファイルが入れ子になっていた場合)
find ./ -type f -exec unzip -j -B {} \;

他にも lsxargs を使う方法もあるんですが、短く書くというよりも自分が分かりやすい方法を選ぶのが良いんじゃないかなと思います。

ZIPファイルの解凍(lsとxargsを使用)
ls * | xargs -I{} unzip -j -B {}

不要なZIPファイルを削除

完全に解凍してしまったら ZIP ファイルが残っていると厄介なので削除してしまいます。拡張子で判断できるなら rm でいけるんですが、今回はそうでないことを想定して中身が ZIP 形式であるファイルを探しだして削除したいと思います。

これもそんなに難しくはなくて filegrep を使えば案外と簡単にできてしまいます。削除する前に念のため対象となるファイルを確認しておきます。ファイルが多いとすごく時間がかかりますので、ファイル名で判断できる時は rm *.zip で削除した方が良いかなと思います。

対象となるZIPファイルの確認
file * | grep 'Zip archive' 
ZIPファイルの削除を実行
file * | grep 'Zip archive' | sed 's/: *Zip archive.*//' | xargs -I{} rm {}

ファイル名を UTF8 に変更

解凍後のファイル名が SJIS だと文字化けしてしていると思うので全ファイル名を UTF8 に変更します。 convmv コマンド使ったら簡単にできます。 convmv がない場合は sudo apt install convmv でインストールします。

ちなみに今回の場合は、あとでファイルをまとめて 1 つにしてしまうため実はファイル名は何でもよかったりします。うまく変換できなかったとしてもそこにこだわる必要はないですし、文字化けのままでもほぼほぼ大丈夫だったりします。

ファイル名をUTF8に変換
convmv -f sjis -t utf8 --notest *

ファイルの中身を UTF8 に変更して、改行コードを LF に変更

私は使い慣れている nkf を使っています。インストールされていない場合は sudo apt install nkf でインストールします。 nkf は文字コード変換と改行コード変更が同時にできちゃうので便利です。ファイル数が多いと「 Too many open files 」になっちゃうため、 find を使っていますがファイルが少なかったら nkf 〜 * のように書けると思います。

ファイル内容ををUTF8に変換(その1,findを使用)
find ./ -type f -exec nkf -Lu -w --overwrite {} \;
ファイル内容ををUTF8に変換(その2,ファイルが少ない場合)
nkf -Lu -w --overwrite *
ファイル内容ををUTF8に変換(その3,lsとxargsを使用)
ls * | xargs -I{} nkf -Lu -w --overwrite {}

全ファイルをくっつけて重複を削除してひとつのファイルに圧縮して保存

「全ての CSV ファイルの先頭行に項目名が入ってるので cat で単純にくっつけられない」ってことが分かっていればそれほど難しくなかったりします。 1 行目のデーター(ヘッダー)と、各ファイルから 1 行目のヘッダーを削除したデーターをくっつけるっていう感じです。

全ファイルをくっつけて重複を削除してgzip圧縮
(cat * | head -1; ls * | xargs -I{} sed '1d' {} | sort | uniq) | gzip > all.csv.gz

ちなみに「 NYSOL 」の「Mコマンド」が使えると以下のように書くことができます。 NYSOL の Mコマンドは CSV ファイルが扱えるだけでなく、少ないメモリーでも大きなファイルが扱えたりするので、使ってみるとなかなか便利だったりします。

Mコマンドで全ファイルをくっつけて重複を削除してgzip圧縮
mcat i=* | muniq k='*'  | mfldname -q | gzip > all.csv.gz

gzip 圧縮していますが展開後のサイズを確認したい時は以下のような感じでしょうか。

展開後サイズの確認
zcat all.csv.gz | wc -l -c
展開後サイズの確認(実行結果)
$ zcat all.csv.gz | wc -l -c
 748654 229449752

gzip 圧縮されたファイルを解凍するとレコード数は 74 万行くらい、ファイルサイズは 200M くらいであることが分かります。

なんで圧縮するの?

ファイルは小さい方が扱いが楽だからってなところでしょうか。ファイル内容にもよりますがサイズは 1/8 程度にはなると思いますし、 R の data.table::fread だと data.table::fread("zcat all.csv.gz") みたいに書けるので gzip 圧縮されてても使いにくいということはないかなって。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

cronをつかったら詰まったのでメモ。

基本事項のざっとした説明

※細かいことは他にも色々あるので必要な人は調べてください

  • cron --- 定期実行するデーモン
  • crontab --- cronのスケジュール設定する

実行環境 Linux Mint(19.1 Tessa)

以下のコマンドで現在の設定内容を表示できる

$crontab -l

上記コマンドをdockerの中とMacで実行したが、コマンドが存在しなかったので
とりあえずLinux Mint(19.1 Tessa)のPCで試してみた。未設定の場合は以下のように表示される。
corabtab_-l.png
以下のコマンドで設定の編集ができるようになる、最初はエディタの指定を求められる。(今回はVimに設定した。nanoがおすすめされていた)

$crontab -e

crontab_-e.png

コマンドは 分、時、日 、月、曜日、コマンド
の順番で記載し、半角スペースを空ける。
以下は10分毎にシェルを実行する設定

*/10 * * * * /home/user/test.sh

cronの実行ログを確認するコマンド

grep CRON /var/log/syslog

今回遭遇したトラブルと対応方法

トラブル① エラー No MTA installed, discarding output

設定してもまったくなにも起きなかったので実行ログを確認したところ以下のような表示が出ていた。
cron_log_err.png
調べたところ、UbuntuとUbuntuがベースのLinux Mintで起きる事象であるとのこと。

postfixをインストールすると上記のエラーは解消された。

sudo aptitude install postfix

トラブル② シェルのパーミッション

トラブル①を解消するも全くシェルが動かなかった。
ふとファイルのパーミッションを確認してみると『-rw-rw-r--』だった

実行権限を付与した。(とりえず動かすための権限付与なので必要に応じて変えてください)

chmod +x test.sh

正常にシェルは動作した。

補足

ちなみにcronの動作確認をしたかっただけなので確認用のコマンドは以下のように簡単なものを使用した。

echo "test cron1" >> /home/owner/aaa.txt
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

cronを使ってみた

基本事項のざっとした説明

※細かいことは他にも色々あるので必要な人は調べてください

  • cron --- 定期実行するデーモン
  • crontab --- cronのスケジュール設定する

実行環境 Linux Mint(19.1 Tessa)

以下のコマンドで現在の設定内容を表示できる

$crontab -l

上記コマンドをdockerの中とMacで実行したが、コマンドが存在しなかったので(※後で確認したらMacにはありました。。。表示が少し違っていたので見間違いと思われます)
とりあえずLinux Mint(19.1 Tessa)のPCで試してみた。crontabが使えてかつ未設定の場合は以下のように表示される。
corabtab_-l.png
以下のコマンドで設定の編集ができるようになる、最初はエディタの指定を求められる。(今回はVimに設定した。nanoがおすすめされていた)

$crontab -e

crontab_-e.png

コマンドは 分、時、日 、月、曜日、コマンド
の順番で記載し、半角スペースを空ける。
以下は10分毎にシェルを実行する設定

*/10 * * * * /home/user/test.sh

cronの実行ログを確認するコマンド

  • Linux Mintの場合
grep CRON /var/log/syslog
  • EC2の場合
sudo grep CRON /var/log/cron

今回遭遇したトラブルと対応方法

トラブル① エラー No MTA installed, discarding output

設定してもまったくなにも起きなかったので実行ログを確認したところ以下のような表示が出ていた。
cron_log_err.png
調べたところ、UbuntuとUbuntuがベースのLinux Mintで起きる事象であるとのこと。

postfixをインストールすると上記のエラーは解消された。

sudo aptitude install postfix

トラブル② シェルのパーミッション

トラブル①を解消するも全くシェルが動かなかった。
ふとファイルのパーミッションをls -lコマンドで確認してみると-rw-rw-r--だった。

実行権限を付与した。(とりえず動かすための権限付与なので必要に応じて変えてください)

chmod +x test.sh

正常にシェルは動作した。

補足

ちなみにcronの動作確認をしたかっただけなので確認用のコマンドは以下のように簡単なものを使用した。

echo "test cron1" >> /home/owner/aaa.txt
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

cronを初めて使ったら詰まったのでメモ。

基本事項のざっとした説明

※細かいことは他にも色々あるので必要な人は調べてください

  • cron --- 定期実行するデーモン
  • crontab --- cronのスケジュール設定する

実行環境 Linux Mint(19.1 Tessa)

以下のコマンドで現在の設定内容を表示できる

$crontab -l

上記コマンドをdockerの中とMacで実行したが、コマンドが存在しなかったので(※後で確認したらMacにはありました。。。表示が少し違っていたので見間違いと思われます)
とりあえずLinux Mint(19.1 Tessa)のPCで試してみた。crontabが使えてかつ未設定の場合は以下のように表示される。
corabtab_-l.png
以下のコマンドで設定の編集ができるようになる、最初はエディタの指定を求められる。(今回はVimに設定した。nanoがおすすめされていた)

$crontab -e

crontab_-e.png

コマンドは 分、時、日 、月、曜日、コマンド
の順番で記載し、半角スペースを空ける。
以下は10分毎にシェルを実行する設定

*/10 * * * * /home/user/test.sh

cronの実行ログを確認するコマンド

  • Linux Mintの場合
grep CRON /var/log/syslog
  • EC2の場合
sudo grep CRON /var/log/cron

今回遭遇したトラブルと対応方法

トラブル① エラー No MTA installed, discarding output

設定してもまったくなにも起きなかったので実行ログを確認したところ以下のような表示が出ていた。
cron_log_err.png
調べたところ、UbuntuとUbuntuがベースのLinux Mintで起きる事象であるとのこと。

postfixをインストールすると上記のエラーは解消された。

sudo aptitude install postfix

トラブル② シェルのパーミッション

トラブル①を解消するも全くシェルが動かなかった。
ふとファイルのパーミッションをls -lコマンドで確認してみると-rw-rw-r--だった。

実行権限を付与した。(とりえず動かすための権限付与なので必要に応じて変えてください)

chmod +x test.sh

正常にシェルは動作した。

補足

ちなみにcronの動作確認をしたかっただけなので確認用のコマンドは以下のように簡単なものを使用した。

echo "test cron1" >> /home/owner/aaa.txt
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

cronをつかってみたら詰まったので書いておく。

基本事項のざっとした説明

※細かいことは他にも色々あるので必要な人は調べてください

  • cron --- 定期実行するデーモン
  • crontab --- cronのスケジュール設定する

実行環境 Linux Mint(19.1 Tessa)

以下のコマンドで現在の設定内容を表示できる

$crontab -l

上記コマンドをdockerの中とMacで実行したが、コマンドが存在しなかったので
とりあえずLinux Mint(19.1 Tessa)のPCで試してみた。未設定の場合は以下のように表示される。
corabtab_-l.png
以下のコマンドで設定の編集ができるようになる、最初はエディタの指定を求められる。(今回はVimに設定した。nanoがおすすめされていた)

$crontab -e

crontab_-e.png

コマンドは 分、時、日 、月、曜日、コマンド
の順番で記載し、半角スペースを空ける。
以下は10分毎にシェルを実行する設定

*/10 * * * * /home/user/test.sh

cronの実行ログを確認するコマンド

grep CRON /var/log/syslog

今回遭遇したトラブルと対応方法

トラブル① エラー No MTA installed, discarding output

設定してもまったくなにも起きなかったので実行ログを確認したところいかのような表示が出ていた。
cron_log_err.png
調べたところ、UbuntuとUbuntuがベースのLinux Mintで起きる事象であるとのこと。

postfixをインストールすると上記のエラーは解消された。

sudo aptitude install postfix

トラブル② シェルのパーミッション

トラブル①を解消するも全くシェルが動かなかった。
ふとファイルのパーミッションを確認してみると『-rw-rw-r--』だった

実行権限を付与した。

chmod +x test.sh

正常にシェルは動作した。

補足

ちなみにcronの動作確認をしたかっただけなので確認用のコマンドは以下のように簡単なものを使用した。

echo "test cron1" >> /home/owner/aaa.txt
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ファイルの変更時刻に基づいて名前変更 (Linux)

ファイルの変更時刻に基づいて名前変更

コマンド

LOGFILE にファイル名を変更したいファイル名が入っているとして

if [ -e $LOGFILE ]; then
   TIMESTAMP=$(date -r $LOGFILE "+%Y-%m-%d_%H_%M_%S")
   mv $LOGFILE $LOGFILE.$TIMESTAMP
fi

とすればよい。

説明

date -r ファイル名ファイル名 で指定したファイルの変更時刻を取得できる。
"+%Y-%m-%d_%H_%M_%S"date -r で返す形式をしているしている。

$(コマンド) を使うことにより コマンド の実行結果を変数に代入できる。

mv で実際の名前変更を実行する。

参考

https://stackoverflow.com/questions/16391208/print-a-files-last-modified-date-in-bash/16391221

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

UIが美しすぎる「SolusOS」使ってみた

image.png
画像出典

Solusとは


Solusとは、ユーザフレンドリーを目的として開発されたFedora系LinuxベースのOS(少し前まではEvolve OSと呼ばれていたらしい)です。
非常にシンプルで、マテリアルチックな美しいUIを備えています。

  • Firefoxが標準搭載
  • サンダーバード標準搭載
  • ファイル管理が容易
  • ソフトウェアセンターから直接アプリをインストール可能
  • +α 綺麗なUI

というのが公式のアピールポイントらしいです。

環境

  • Windows 10 (ホスト)
    • CPU: AMD Ryzen Threadripper 3960X
    • RAM: 64 GiB
    • VIDEO CARD: RTX 2070 Super
      • VMWare Pro 15.5.5 (ゲスト)
        • OS: Solus 4.1 Plasma
        • Disk: 20 GiB
        • RAM: 2,048 MB
        • CPU: 1 Processor 1 Core

Solusの最低動作環境

公式ページから引用しました。

  • A blank DVD or a 2GB+ USB drive
    • 空のDVD若しくは2GB以上容量のあるUSB
  • Minimum of 10GB of disk space available
    • 最小10GBのフリーディスク容量
  • 2GB of RAM for an optimal experience
    • 最小2GBのメモリ
  • A 64-bit (x86_64) processor
    • 64ビットプロセッサ

インストール

本例ではVMWareを使用して仮想環境上にインストールします。
USBブータブルから物理マシンへインストールすることも勿論可能です。

1. ダウンロード

公式ページからイメージをダウンロードします。
本例ではSolus Plasmaをインストールしました。
image.png

2. 仮想マシンの作成

新規仮想マシンを作成します。
1でダウンロードしたイメージを指定してください。
image.png
1.PNG
任意の仮想マシン名を指定
ex2.PNG
ディスク設定は各自適切に指定してください。
image.png
最終的に以下のようになりました。
ex.PNG

3. Solusのインストール

作成した仮想マシンをパワーオンすると、インストールアプリケーションがぽつんと置いてあるデスクトップが表示されます。
image.png
起動すると、言語設定に移ります。
本例ではEnglish (United States)ですすめます。
setup1.png
次に、ロケーションの設定です。
インターネットに接続していれば自動的に探索してくれますね。
setup2.png
キーボードレイアウトはJapaneseに設定しました。
setup3.png
タイムゾーンはTokyo
setup4.png
次に、ディスク関連の設定です。
本例ではVMWareの仮想環境上にインストールしますので、特に他ファイルとの干渉を気にする必要がありませんでしたので、前者のフレッシュインストールを選択しました。
個別にパティーションを設定したい場合は後者を指定してください。
setup5.png
本例ではLVMはインストールしません。
setup6.png
次にブートローダーとホスト名の設定です。
ホスト名は任意で、ブートローダをインストールします。
setup7.png
次にユーザの設定です。
こちらも任意のユーザを作成してください。
setup8.png
本例ではこのようになりました。
setup9.png
最後に、インストール概要の確認です。
同じく本例では以下のようになりました。
setup10.png
ポップアップが出てくるので良ければOK
setup11.png
セットアップが完了したら、Restart Nowを押して再起動してください。
setup13.png
再起動後、問題なくインストールできていることを確認できます。
setup14.png

VMWare Toolsのインストール方法

VMWare上にインストールした初期状態だと、リソリューションを自由に変更することができず、初期の小さいウィンドウ以上に広げることができないので、VMWare Toolsをインストールします。

1. セットアップ

OSが起動した状態でタブにあるVM -> VMWare Toolsのインストールをクリックすると自動的に必要なバイナリを渡してくれます。
本例では~/Documentsに移動させ、解凍しました。
image.png
中身はこのようになっているはずです。
image.png
次にターミナルを起動します。
画面全体左下のスタートメニューよりKonsole若しくはterminalと検索すると出てきます。
terminal.PNG
事前に必要なディレクトリを作成します。
※必須です

ちなみにsudoも必須でスーパーユーザ以外で実行できません。
vmwaretools2.png

$ sudo mkdir -p /etc/init.d/rc0.d
$ sudo mkdir -p /etc/init.d/rc1.d
$ sudo mkdir -p /etc/init.d/rc2.d
$ sudo mkdir -p /etc/init.d/rc3.d
$ sudo mkdir -p /etc/init.d/rc4.d
$ sudo mkdir -p /etc/init.d/rc5.d
$ sudo mkdir -p /etc/init.d/rc6.d

$ sudo mkdir -p /etc/pam.d

ディレクトリが作成できたら、インストールを実行。

$ cd ~/Documents/vmware-tools-distrib
$ sudo ./vmware-install.pl

本例では、この後訊かれるオプションは全てデフォルト(何も入力せずEnter)に設定しました。
セットアップ完了後、問題なく画面の収縮を行えるようになりました。

全体ログ

A previous installation of VMware Tools has been detected.

The previous installation was made by the tar installer (version 4).

Keeping the tar4 installer database format.

You have a version of VMware Tools installed. Continuing this install will
first uninstall the currently installed version. Do you wish to continue?
(yes/no) [yes]

INPUT: [yes] default

Uninstalling the tar installation of VMware Tools.

Stopping services for VMware Tools

Stopping VMware Tools services in the virtual machine:
Guest operating system daemon: done
VMware User Agent (vmware-user): done
Unmounting HGFS shares: done
Guest filesystem driver: done

cat: /tmp/cafenv-appconfig: No such file or directory
This program previously created the directory /etc/vmware-caf/pme/config, and
was about to remove it. Since there are files in that directory that this
program did not create, it will not be removed.

This program previously created the directory /etc/vmware-caf/pme, and was
about to remove it. Since there are files in that directory that this program
did not create, it will not be removed.

This program previously created the directory /etc/vmware-caf, and was about to
remove it. Since there are files in that directory that this program did not
create, it will not be removed.

The removal of VMware Tools 10.3.21 build-14772444 for Linux completed
successfully.

Installing VMware Tools.

In which directory do you want to install the binary files?
[/usr/bin]

INPUT: [/usr/bin] default

What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc/init.d]

INPUT: [/etc/init.d] default

What is the directory that contains the init scripts?
[/etc/init.d]

INPUT: [/etc/init.d] default

In which directory do you want to install the daemon files?
[/usr/sbin]
INPUT: [/usr/sbin] default

In which directory do you want to install the library files?
[/usr/lib/vmware-tools]
INPUT: [/usr/lib/vmware-tools] default

The path "/usr/lib/vmware-tools" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]
INPUT: [yes] default

In which directory do you want to install the common agent library files?
[/usr/lib]
INPUT: [/usr/lib] default

In which directory do you want to install the common agent transient files?
[/var/lib]
INPUT: [/var/lib] default

In which directory do you want to install the documentation files?
[/usr/share/doc/vmware-tools]
INPUT: [/usr/share/doc/vmware-tools] default

The path "/usr/share/doc/vmware-tools" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]
INPUT: [yes] default

The installation of VMware Tools 10.3.21 build-14772444 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl".

Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]
INPUT: [yes] default

Initializing...

Making sure services for VMware Tools are stopped.

Stopping VMware Tools services in the virtual machine:
Guest operating system daemon: done
VMware User Agent (vmware-user): done
Unmounting HGFS shares: done
Guest filesystem driver: done

sh: : command not found
The module vmci has already been installed on this system by another installer
or package and will not be modified by this installer.

The module vsock has already been installed on this system by another installer
or package and will not be modified by this installer.

The module vmxnet3 has already been installed on this system by another
installer or package and will not be modified by this installer.

The module pvscsi has already been installed on this system by another
installer or package and will not be modified by this installer.

The module vmmemctl from this package is not supported for kernels >= 3.10.
Please enable this module in your kernel. You may also have to enable
HYPERVISOR_GUEST.

The VMware Host-Guest Filesystem allows for shared folders between the host OS
and the guest OS in a Fusion or Workstation virtual environment. Do you wish
to enable this feature? [yes]

INPUT: [yes] default

The vmxnet driver is no longer supported on kernels 3.3 and greater. Please
upgrade to a newer virtual NIC. (e.g., vmxnet3 or e1000e)

The vmblock enables dragging or copying files between host and guest in a
Fusion or Workstation virtual environment. Do you wish to enable this feature?
[yes]

INPUT: [yes] default

Skipping configuring automatic kernel modules as no drivers were installed by
this installer.

Disabling timer-based audio scheduling in pulseaudio.

Do you want to enable Guest Authentication (vgauth)? Enabling vgauth is needed
if you want to enable Common Agent (caf). [yes]

INPUT: [yes] default

Do you want to enable Common Agent (caf)? [no]

INPUT: [no] default

Detected X server version 1.20.6

Distribution provided drivers for Xorg X server are used.

Skipping X configuration because X drivers are not included.

Skipping rebuilding initrd boot image for kernel as no drivers to be included
in boot image were installed by this installer.

Generating the key and certificate files.
Successfully generated the key and certificate files.

The configuration of VMware Tools 10.3.21 build-14772444 for Linux for this
running kernel completed successfully.

You must restart your X session before any mouse or graphics changes take
effect.

To enable advanced X features (e.g., guest resolution fit, drag and drop, and
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session
3. Restart your X session.

Enjoy,

--the VMware team

終わり

image.png
日本語フォントが若干浮いてるのは気にならないこともないですが、
重めなYouTubeも特にストレスを感じることなく軽々1080P再生できました。寧ろ軽いです。

感想

image.png

  • UIが綺麗、とにかく綺麗で見やすい
  • 軽い
  • セットアップが簡単・速い
  • シンプル

という点がファーストインプレッションで大きかったです。
これから主にデベロッパ向けの日本語ドキュメントを増やしていきたいです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む