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

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