2019/08/01

自製紗窗


我有個大膽的想法! 自製紗窗

其實是因為陽台要裝瓦斯烘衣機, 原先裝上的鋁窗因為安全問題所以把它拆了下來

但這樣就等於沒有紗窗了, 很容易會有蚊子, 所以決定自己手工做一組!!

Honeywell HPA-720WTW 開箱


雖然本身不太會過敏, 但是一直以來都很想嘗試用用看空氣清淨機

剛好家裡剛裝潢好, 木工粉塵飛揚與怕櫃子貼皮用的膠水會釋放出甲醛

趁機就開始準備想要入手的空氣清淨機牌子與型號

想到前同事買了 Honeywell, 所以就注意在 HPA-100APTW, HPA-200APTW, HPA-710WTW, HPA-720WTW 這四台上面做參考

當然去特X屋的時候, 也有被推薦 Dyson 的 TP-04 與 HP-04, 但使用情境與價格的因素, 這次就先不考慮囉

做功課做了許久, 在考慮了適用坪數與外型, 最後是決定買 HPA-720WTW

近期可能是因為有新產品要發表了, 所以我最終入手價比原價 18900 或折扣價 17900 還便宜很多!!

2019/03/22

如何修改 visudo 的預設編輯器



由於 ubuntu 預設 visudo 的編輯器是 nano

對於習慣使用 vim 來編輯的使用者來說根本像是天書一樣, 完全不會用

要怎麼修改預設的編輯器呢

如下:

```
$ sudo update-alternatives --config editor
```

```
There are 4 choices for the alternative editor (providing /usr/bin/editor).

Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode

Press to keep the current choice[*], or type selection number:
```

輸入 3 就會是 vim 了

設定 Ubuntu 18 的 hostname



在 Ubuntu 18 中, 設定 hostname 不像是以前可以直接下 hostname 指令

而是要利用 hostnamectl 去做設定, 如下

```
$ sudo hostnamectl set-hostname new-name
```

2019/03/14

LVM 增加新硬碟以增加容量


最近在幹大事, 之前掛載硬碟一下子就不夠用了

幸好當初是用 LVM 方式創建的

所以只要加入一顆硬碟並且加入到 Volume Group 就可以增加空間了

步驟如下:

原先可用空間剩下 9%

```shell

$ df
/dev/mapper/VG1-DATA 308583232 266262416 26576000 91% /data
```

看一下有哪些 Physical Volume

```shell

$ sudo lvmdiskscan -l
WARNING: only considering LVM devices
/dev/sda3 [ <19.00 GiB] LVM physical volume
/dev/sdb [ 300.00 GiB] LVM physical volume
1 LVM physical volume whole disks
1 LVM physical volume
```

在新硬碟建立 PV

```shell

$ sudo pvcreate /dev/sdc
```

看看是否建成功

```shell

$ sudo lvmdiskscan -l
WARNING: only considering LVM devices
/dev/sda3 [ <19.00 GiB] LVM physical volume
/dev/sdb [ 300.00 GiB] LVM physical volume
/dev/sdc [ 300.00 GiB] LVM physical volume
2 LVM physical volume whole disks
1 LVM physical volume

```

很好, /dev/sdc 也變成 PV 了

接下來把 /dev/sdc 加入到 Volume Group 中

```shell

# 要加入的 Volume Group 名稱為 VG1
$ sudo vgextend VG1 /dev/sdc
```

把 Logic Volume 延伸 (步驟同 增大 Ubuntu 18.04 上 root lvm volume )

```shell

# 延伸 LV
$ sudo lvextend -l +100%FREE /dev/VG1/DATA

# 調整 ext4 大小
$ sudo resize2fs -p /dev/mapper/VG1-DATA
```

可用空間變成 54% 了

```shell

$ df
/dev/mapper/VG1-DATA 618214560 266267944 323619528 46% /data
```

可以繼續幹大事了

從 -flat.vmdk 還原為 .vmdk

由於一時手殘, 不小心把 VM 的檔案全刪了, 幸好 VM 是開啟的狀態, 所以 -flat.vmdk 沒有被刪除

那麼該怎麼還原呢

首先先查看你的 -flat.vmdk 檔案

```
$ ls -al
-rw------- 1 root root 322122547200 Mar 14 05:37 vm-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 vm-flat.vmdk
```

只剩下兩個 -flat.vmdk

先記下來 這兩個檔案的大小 322122547200 跟 21474836480

實際上還原的指令是:

```
$ vmkfstools -c 322122547200 -a pvscsi -d thin restore-1.vmdk
$ vmkfstools -c 21474836480 -a pvscsi -d thin restore.vmdk
```

其中 -a 的參數是你創建的 SCSI Controller

我是 VMware Paravirtual 則填 pvscsi
也有可能是 LSI Logic 則填 lsilogic

vmkfstools 指令執行完後會產生四個新檔案 ls 看一下

```
-rw------- 1 root root 322122547200 Mar 14 05:37 vm-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 vm-flat.vmdk
-rw------- 1 root root 322122547200 Mar 14 05:37 restore-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 restore-flat.vmdk
-rw------- 1 root root 478 Mar 14 05:37 restore-1.vmdk
-rw------- 1 root root 528 Mar 14 05:37 restore.vmdk
```

接下來重點就是 把產生的 restore-1-flat.vmdk 跟 restore-flat.vmdk 刪除
並且重新命名 vm-1-flat.vmdk 跟 vm-flat.vmdk 為 restore-1-flat.vmdk 跟 restore-flat.vmdk

這樣磁碟裡的資料才會回來

2019/01/29

LVM 建置指令



每次要建lvm都忘記指令,來記錄一下

```shell

# 先建置分割區, 並且 type 設為8e
# 其實我不太了解如果都是用整顆硬碟的空間, 那麼要不要做這個步驟的差別是什麼(效能?對齊?其他?)
# fdisk <device Point>
$ fdisk /dev/xvdb

# 建立 Physical Volume
# pvcreate <device Partition>
$ pvcreate /dev/xvdb1

# 建立 Volume Group
# vgcreate <vg Name> <device Partition>
$ vgcreate VG1 /dev/xvdb1

# 建立 Logical Volume
# lvcreate -l 100%FREE -n <lv Name> <vg Name>
$ lvcreate -l 100%FREE -n DATA VG1

# 格式化
# mkfs.ext4 -L <label> /dev/<vg Name>/<lv Name>
$ mkfs.ext4 -L DATA /dev/VG1/DATA

# 開機自動掛載
echo "LABEL=DATA /data ext4 defaults 0 0" >> /etc/fstab
```