###### 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`,特別要注意前面的 `:` 不能少 :::