###### tags: `tutorials` `linux` `ubuntu` `mount`
# Linux 新增磁碟
- 更多請參考: https://blog.gtwang.org/linux/linux-add-format-mount-harddisk/
## 分割硬碟
### 目前系統硬碟的使用情形
~~~bash= !
$ df -h
~~~
> 輸出為
> ```
> Filesystem Size Used Avail Use% Mounted on
> /dev/sda1 440G 46G 372G 12% /
> none 5.9G 260K 5.9G 1% /dev
> none 5.9G 0 5.9G 0% /dev/shm
> none 5.9G 64K 5.9G 1% /var/run
> none 5.9G 0 5.9G 0% /var/lock
> none 5.9G 0 5.9G 0% /lib/init/rw
> /dev/sdb1 459G 198M 435G 1% /data1
> ```
:::warning
剛剛裝上的新硬碟因為沒有分割磁區所以一般是看不到的
:::
### 使用下述指令查看所有接上去的磁碟
~~~bash= !
$ ls /dev/[sh]d*
~~~
> 輸出為
> /dev/sda /dev/sda1 /dev/sda2 /dev/sda5 /dev/sdb /dev/sdb1 /dev/sdc
可以知道新硬碟為 `/dev/sdc`,查詢硬碟使用狀況
> 輸出為
> ```
> Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
> 255 heads, 63 sectors/track, 243201 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
> Sector size (logical/physical): 512 bytes / 512 bytes
> I/O size (minimum/optimal): 512 bytes / 512 bytes
> Disk identifier: 0x40bab849
> Device Boot Start End Blocks Id System
> ```
> :::warning
> 可以發現沒有任何分割表資訊,確定磁碟後就可以開始分割
> :::
### 分割磁區
- 開始分割磁區
~~~bash= !
$ sudo fdisk /dev/sdc
~~~
:::info
進入 `fdisk` 後輸入 `m` 再按 `Enter` 可以查看更多指令
:::
1. 新增分割區,輸入 `n` 按 `Enter`。
2. 選擇要建立 extended 還是 primary partition,因為我的硬碟全部只要一個分割區,所以我選 primary,輸入 `p` 按 `Enter`。
3. 選擇 Partition number,primary 分割區最多可以有四個,隨便選都可以,不過建議選 `1`,免得以後看起來很奇怪,輸入 `1` 按 `Enter`。
4. 輸入開始的 cylinder,用預設值就可以了,直接按 `Enter`。
5. 輸入結束的 cylinder,若是要用最大的容量,就直接按 `Enter`,若是要指定分割區的大小,就用 `+size{K,M,G}` 的形式指定,例如指定為 100G 的大小就輸入 `+100G` 再按 `Enter`。
6. 最後將分割表寫入硬碟,輸入 `w` 再按 `Enter`。
7. 離開 `fdisk` 輸入 `q` 按 `Enter`。
- 確認分割磁區
~~~bash= !
$ sudo fdisk -l /dev/sdc
~~~
> 輸出為
> ```
> Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
> 255 heads, 63 sectors/track, 243201 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
> Sector size (logical/physical): 512 bytes / 512 bytes
> I/O size (minimum/optimal): 512 bytes / 512 bytes
> Disk identifier: 0x40bab849
> Device Boot Start End Blocks Id System
> /dev/sdc1 1 243201 1953512001 83 Linux
> ```
> :::success
> 最下面一行就是新的分割資訊
> :::
## 格式化(Format)硬碟
~~~bash= !
$ sudo mkfs -t ext4 /dev/sdc1
~~~
- `-t`: 指定格式化方式,現在新的都是使用 `ext4`,少數舊系統可能是 `ext3`
## 掛載(mount)硬碟
- 列出所有磁碟 *UUID*
~~~bash= !
$ sudo blkid
~~~
- 修改 `/etc/fstab`
~~~bash= !
$ sudo vim /etc/fstab
~~~
- 加入下行將新硬碟掛載至 `/mnt/data2` 路徑
~~~
UUID=146d3bb3-e351-45c8-ac84-42534ce51d29 /mnt/data2 ext4 defaults 0 0
~~~
:::warning
掛載的路徑必須先建立(必須存在)
`etx4` 那欄必須和當初格式化同格式
:::
- 即時掛載(optional)
若想不重新開機先確認有沒有掛載成功
~~~bash= !
$ sudo mount /mnt/data2
~~~
- 確認是否成功掛載
~~~bash= !
$ df -h
~~~
:::warning
如果沒執行上面即時掛載的方式要先重新開機後才會生效
:::
:::danger
- 建議資料不要直接放在掛載的路徑下(也就是和一個 `lost+found` 資料夾同路徑),最好在掛載路徑下新增一個資料夾,之後將資料放在新增的資料夾下以避免不慎刪除 `lost+found` 資料夾
> 例如上面例子中,掛載資料夾在 `/mnt/data2` 路徑下,掛載成功後會有自動建立一個路徑為 `/mnt/data2/lost+found` 的資料夾,建議在 `/mnt/data2` 下在建立一個資料夾 `data/`,並將資料放在 `/mnt/data2/data` 下
:::
## 檔案 / 資料夾權限
預設掛載擁有者為 `root`,若之後要新增/修改檔案則可能會沒有權限,這時則需要更改資料夾擁有者
:::danger
不建議將 `lost+found` 資料夾擁有者設為 `root` 以外的使用者
:::
### 修改`檔案` 權限
```bash=
$ sudo chown {owner_name}:{owner_group} {filename}
```
- chown: 更改擁有者的指令 (change owner 的縮寫)
- {owner_name}: 檔案的新擁有者
- {owner_group}: 檔案的新擁有者群組
- {filename}: 要變更權限的檔案
:::info
- 如果只要變更擁有者可以不用加後面的 `:{owner_group}`
- 如果只要變更擁有者群組只要寫 `:{owner_group}` 不用加前面的 `{owner_name}`
:::
:::success
例如
~~~bash= !
$ sudo chown jimmy:jimmy_group file.txt
~~~
就是把 `file.txt` 這個檔案的擁有者改變為 `jimmy`,並把擁有者群組改變為 `jimmy_group`
---
~~~bash= !
$ sudo chown jimmy file.txt
~~~
就是把 `file.txt` 這個檔案的擁有者改變為 `jimmy`
---
~~~bash= !
$ sudo chown :jimmy_group file.txt
~~~
就是把 `file.txt` 這個檔案的擁有者群組改變為 `jimmy_group`,特別要注意前面的 `:` 不能少
:::
---
### 修改 `資料夾及以下所有檔案` 權限
```bash= !
$ sudo chown -R {owner_name}:{owner_group} {folder_name}
```
- chown: 更改擁有者的指令 (change owner 的縮寫)
- {owner_name}: 資料夾的新擁有者
- {owner_group}: 資料夾的新擁有者群組
- {folder_name}: 要變更權限的資料夾
:::info
- 如果只要變更擁有者可以不用加後面的 `:{owner_group}`
- 如果只要變更擁有者群組只要寫 `:{owner_group}` 不用加前面的 `{owner_name}`
:::
:::success
例如
~~~bash= !
$ sudo chown -R jimmy:jimmy_group folder
~~~
就是把 `folder` 這個資料夾的擁有者改變為 `jimmy`,並把擁有者群組改變為 `jimmy_group`
---
~~~bash= !
$ sudo chown -R jimmy folder
~~~
就是把 `folder` 這個資料夾的擁有者改變為 `jimmy`
---
~~~bash= !
$ sudo chown -R :jimmy_group folder
~~~
就是把 `folder` 這個資料夾的擁有者群組改變為 `jimmy_group`,特別要注意前面的 `:` 不能少
:::