Ubuntu で 新しいハードディスクを追加する方法 step by step

これまで新しいハードディスクを追加する際の tips を書いてきましたが、最初から最後までまとめます。SATA接続のSSDも同様です。

  1. 新しいデバイスを確認する
  2. fdisk を使って確認できます。

    sudo fdisk -l
    

    詳細はこちらに説明があります。

    この後は、 /dev/sda が新たなデバイスであると仮定します。

  3. パーティションの作成
  4. gdisk を使います。

    sudo gdisk /dev/sda
    

    この後、タイプするコマンドは

    n #新しいパーティションを追加 設定はすべてデフォルトのままでも可
    p #パーティションテーブルを確認
    w #パーティションテーブルの書き込み
    

    の3つだけです。

    詳細は先ほどと同じく、こちらに説明があります。

  5. ext4 としてフォーマット
  6. mkfs.ext4 を使います。

    sudo mkfs.ext4 /dev/sda
    
  7. ハードディスクのUUIDを確認
  8. blkid で確認できます。

    sudo blkid | grep dev\/sda
    

    ここで表示されるUUIDを後ほど使います。

  9. マウントポイントの作成
  10. 今の場合は /mnt/data1 にマウントするとします。

    sudo mkdir /mnt/data1
    
  11. /etc/fstab への追加
  12. /etc/fstab に以下の内容を追加します。詳細はここでは説明しませんが、データ用ならば以下の設定でよいのではないかと思われます。

    # HDD 2023-04-15 (コメントを記載した方がどのハードディスクかわかります)
    UUID=上記で調べたUUID    /mnt/data1    ext4    defaults    0    0
    
  13. ハードディスクのマウント
  14. mount -a でマウントできます。

    sudo mount -a
    
  15. オーナーシップの変更
  16. 自分だけ使う場合、chown を使ってオーナーを自分にすると使い勝手がいいです。

    sudo chown -R $USER:$USER /mnt/data1
    

これでハードディスクを追加できました。

脳画像解析のためのコマンドライン習得勉強会(2019年2月10日)

(2018.12.05 満席となりました)

脳画像解析を行っていくうえで、コマンドラインに慣れることは必須です。
しかし、コマンドラインを習得するよいテキストはなかなかありません。
このため、脳画像解析を行ううえで有用なコマンドラインを習得するための勉強会を企画しました。

  • 日時:2019年2月10日(日)9:00-17:00
  • 場所:オフィス東京(東京駅八重洲口から徒歩5分)
  • 費用:無料
  • 定員:30名(先着順)

続きを読む

LinuxでUSBメモリをNTFSにフォーマットにするコマンド

先日、USBメモリに4GBを超えるファイルをコピーする必要がありました。
Windowsユーザー、Macユーザーも使うUSBメモリなので、NTFSフォーマットがよいと考えました。MacユーザーもNTFSは標準で読み取りはできますので。

これまで、フォーマットするときにGPartedでやっていました。GUIで簡単ですから。

しかし、今回は、NTFSフォーマットだけでなく、ボリュームラベルも変更する必要がありました。Gpartedでは、これは2段階(NTFSへのフォーマットとラベルの設定)になってしまうので、もっと簡単な方法はないかと思いました。

検索してなかなかすぐに見つけられなかったのですが、以下の方法が簡便とわかったので、紹介します。

  • USBメモリのデバイス名の確認
  • Linuxでは、USBメモリは、/dev/sdc1とか/dev/sdb1などに割り当てられます。どこに割り当てられたかを確認する必要があります。方法として、dmesgを使う方法と、fdisk -lを使う方法があります。

    • dmesg
    • USBメモリをPCにさした時点で、端末に

      $ dmesg
      

      とタイプします。そうすると、以下のようなメッセージが出てきます。

      [ 8939.172114] usb 3-2: New USB device found, idVendor=054c, idProduct=05bb
      [ 8939.172119] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
      [ 8939.172120] usb 3-2: Product: Storage Media
      [ 8939.172122] usb 3-2: Manufacturer: Sony
      [ 8939.172124] usb 3-2: SerialNumber: EBA5A08FFF1748
      [ 8939.712192] usb-storage 3-2:1.0: USB Mass Storage device detected
      [ 8939.712398] scsi3 : usb-storage 3-2:1.0
      [ 8939.714168] usbcore: registered new interface driver usb-storage
      [ 8939.717329] usbcore: registered new interface driver uas
      [ 8940.957656] scsi 3:0:0:0: Direct-Access     Sony     Storage Media    0100 PQ: 0 ANSI: 6
      [ 8940.957872] sd 3:0:0:0: Attached scsi generic sg2 type 0
      [ 8940.958666] sd 3:0:0:0: [sdc] 30507008 512-byte logical blocks: (15.6 GB/14.5 GiB)
      [ 8940.959280] sd 3:0:0:0: [sdc] Write Protect is off
      [ 8940.959282] sd 3:0:0:0: [sdc] Mode Sense: 43 00 00 00
      [ 8940.959779] sd 3:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
      [ 8940.964615]  sdc: sdc1
      [ 8940.966528] sd 3:0:0:0: [sdc] Attached SCSI removable disk
      [ 9741.422259] usb 3-2: USB disconnect, device number 2
      

      ここにUSBとかsdcとか出てきますね。
      これで、/dev/sdcが割り当てられたとわかります。

    • fdisk -l
    • もうひとつの方法はfdiskを用いることです。-lオプションで、デバイスの一覧を表示します。

      $ sudo fdisk -l
      

      とすると、今度は次のように表示されます。

      Disk /dev/sdc: 15.6 GB, 15619588096 bytes
      ヘッド 255, セクタ 63, シリンダ 1898, 合計 30507008 セクタ
      Units = セクタ数 of 1 * 512 = 512 バイト
      セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
      I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
      ディスク識別子: 0xc3072e18
      
      デバイス ブート      始点        終点     ブロック   Id  システム
      /dev/sdc1              48    30507007    15253480    c  W95 FAT32 (LBA)
      

      この方がわかりやすいですね。いずれにしても、/dev/sdc1がUSBメモリのパーティションだということがわかります。ちなみに、sdc1の1はパーティションの番号で、USBメモリの場合、たいていパーティションは1つなので、sdc1がUSBメモリのパーティションになります。

  • NTFSへのフォーマット
  • ここでは、mkfs -t ntfsというコマンドを使います。そして、ラベルは、-Lというオプションですので、以下のようにタイプします。
    (mkfs.ntfsとmkfs -t ntfsは同義です)

    $ sudo mkfs -t ntfs -L usbdisk /dev/sdc1
    

    そうすると、フォーマットがはじまります。もし、クイックフォーマットにしたい場合は、-Qをつけて、

    $ sudo mkfs -t ntfs -Q -L usbdisk /dev/sdc1
    

    とします。(通常はこちらの方が現実的です)

  • ファイルシステムの確認
  • ふつう、する必要はありませんが、きちんとNTFSに変換されたか知りたい人もいることでしょう。

    その場合は、以下のコマンドをタイプします。

    $ sudo parted -l
    

    そうすると、以下のようなメッセージが表示されます。

    モデル: Sony Storage Media (scsi)
    ディスク /dev/sdc: 15.6GB
    セクタサイズ (論理/物理): 512B/512B
    パーティションテーブル: msdos
    
    番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
     1    24.6kB  15.6GB  15.6GB  primary  ntfs              lba
    

    きちんとファイルシステムがntfsになっていることが確認できました。

Linuxにおけるハイフンの意味

ときどき、下記のような表現を見ます。

$ wget -O- http://www.example.com/example.gpg.key | \
  sudo apt-key add -

この -Oのあとについているハイフンや、apt-key addのあとについているハイフンの意味をきちんと理解していませんでした。

改めて、調べたら、いろいろな方が解説してくれていました。

結論からいうと、

Linuxにおけるハイフンは、標準入出力をさす

のですね。

上記の例の場合、wget -O は本当はファイル名を引数にもつはずで、

wget -O file となるはずなんです。

でも、今の場合、-を指定することで、

wget -O- はその内容を、標準出力に表示するんですね。
今の場合は、example.gpg.keyが表示されるわけです。

で、上記の場合、さらにパイプがつながっていて、apt-key add -と続きます。
今回のハイフンは、今度は標準入力になるわけですね。

つまり、example.gpg.keyの内容が標準出力に出力され、
それがパイプで今度は標準入力になって、apt-key addの引数として使われるわけです。

となると、次と同じということですね。

$ wget -O tmpfile http://www.example.com/example.gpg.key
$ sudo apt-key add tmpfile
$ rm tmpfile

ハイフンを上手に使うことで一時ファイルを作ることなくパイプを使うことができるわけです。
スマートですね。