Try   HackMD
tags: tutorials linux ubuntu mount

Linux 新增磁碟

分割硬碟

目前系統硬碟的使用情形

$ 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

剛剛裝上的新硬碟因為沒有分割磁區所以一般是看不到的

使用下述指令查看所有接上去的磁碟

$ 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

可以發現沒有任何分割表資訊,確定磁碟後就可以開始分割

分割磁區

  • 開始分割磁區
$ sudo fdisk /dev/sdc

進入 fdisk 後輸入 m 再按 Enter 可以查看更多指令

  1. 新增分割區,輸入 nEnter
  2. 選擇要建立 extended 還是 primary partition,因為我的硬碟全部只要一個分割區,所以我選 primary,輸入 pEnter
  3. 選擇 Partition number,primary 分割區最多可以有四個,隨便選都可以,不過建議選 1,免得以後看起來很奇怪,輸入 1Enter
  4. 輸入開始的 cylinder,用預設值就可以了,直接按 Enter
  5. 輸入結束的 cylinder,若是要用最大的容量,就直接按 Enter,若是要指定分割區的大小,就用 +size{K,M,G} 的形式指定,例如指定為 100G 的大小就輸入 +100G 再按 Enter
  6. 最後將分割表寫入硬碟,輸入 w 再按 Enter
  7. 離開 fdisk 輸入 qEnter
  • 確認分割磁區
$ 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

最下面一行就是新的分割資訊

格式化(Format)硬碟

$ sudo mkfs -t ext4 /dev/sdc1
  • -t: 指定格式化方式,現在新的都是使用 ext4,少數舊系統可能是 ext3

掛載(mount)硬碟

  • 列出所有磁碟 UUID
$ sudo blkid
  • 修改 /etc/fstab
$ sudo vim /etc/fstab
  • 加入下行將新硬碟掛載至 /mnt/data2 路徑
UUID=146d3bb3-e351-45c8-ac84-42534ce51d29 /mnt/data2 ext4 defaults 0 0    

掛載的路徑必須先建立(必須存在)
etx4 那欄必須和當初格式化同格式

  • 即時掛載(optional)
    若想不重新開機先確認有沒有掛載成功
$ sudo mount /mnt/data2
  • 確認是否成功掛載
$ df -h

如果沒執行上面即時掛載的方式要先重新開機後才會生效

  • 建議資料不要直接放在掛載的路徑下(也就是和一個 lost+found 資料夾同路徑),最好在掛載路徑下新增一個資料夾,之後將資料放在新增的資料夾下以避免不慎刪除 lost+found 資料夾

    例如上面例子中,掛載資料夾在 /mnt/data2 路徑下,掛載成功後會有自動建立一個路徑為 /mnt/data2/lost+found 的資料夾,建議在 /mnt/data2 下在建立一個資料夾 data/,並將資料放在 /mnt/data2/data

檔案 / 資料夾權限

預設掛載擁有者為 root,若之後要新增/修改檔案則可能會沒有權限,這時則需要更改資料夾擁有者

不建議將 lost+found 資料夾擁有者設為 root 以外的使用者

修改檔案 權限

$ sudo chown {owner_name}:{owner_group} {filename}
  • chown: 更改擁有者的指令 (change owner 的縮寫)
  • {owner_name}: 檔案的新擁有者
  • {owner_group}: 檔案的新擁有者群組
  • {filename}: 要變更權限的檔案
  • 如果只要變更擁有者可以不用加後面的 :{owner_group}
  • 如果只要變更擁有者群組只要寫 :{owner_group} 不用加前面的 {owner_name}

例如

$ sudo chown jimmy:jimmy_group file.txt

就是把 file.txt 這個檔案的擁有者改變為 jimmy,並把擁有者群組改變為 jimmy_group


$ sudo chown jimmy file.txt

就是把 file.txt 這個檔案的擁有者改變為 jimmy


$ sudo chown :jimmy_group file.txt

就是把 file.txt 這個檔案的擁有者群組改變為 jimmy_group,特別要注意前面的 : 不能少


修改 資料夾及以下所有檔案 權限

$ sudo chown -R {owner_name}:{owner_group} {folder_name}
  • chown: 更改擁有者的指令 (change owner 的縮寫)
  • {owner_name}: 資料夾的新擁有者
  • {owner_group}: 資料夾的新擁有者群組
  • {folder_name}: 要變更權限的資料夾
  • 如果只要變更擁有者可以不用加後面的 :{owner_group}
  • 如果只要變更擁有者群組只要寫 :{owner_group} 不用加前面的 {owner_name}

例如

$ sudo chown -R jimmy:jimmy_group folder

就是把 folder 這個資料夾的擁有者改變為 jimmy,並把擁有者群組改變為 jimmy_group


$ sudo chown -R jimmy folder

就是把 folder 這個資料夾的擁有者改變為 jimmy


$ sudo chown -R :jimmy_group folder

就是把 folder 這個資料夾的擁有者群組改變為 jimmy_group,特別要注意前面的 : 不能少