2016年2月21日日曜日

linuxでUSBメモリをマウントして使う

みなさん、こんにちは。


Linuxサーバから設定ファイルをコピーしたい時、みなさんはどうされてますか?
ネットワーク経由で取り出したりといろいろ考えられますが、今回は手軽なUSBメモリに取り出したいと思います。


まずは、USBメモリをLinuxサーバに差し込みます。
最近のLinuxはUSBのPnPに対応しているので自動で認識してくれます。


どのように認識されたが、dmesgコマンドで確認します。

root@dns:/# dmesg
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
・・・・・・省略・・・・・・
[337720.780112] usb 1-1: new full-speed USB device number 2 using uhci_hcd
[337721.124071] usb 1-1: New USB device found, idVendor=04bb, idProduct=0c80
[337721.125094] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[337721.126403] usb 1-1: Product: USB Flash Disk
[337721.127164] usb 1-1: Manufacturer: I-O DATA
[337721.127903] usb 1-1: SerialNumber: A020C000009110800488
[337721.464843] Initializing USB Mass Storage driver...
[337721.465819] scsi2 : usb-storage 1-1:1.0
[337721.466540] usbcore: registered new interface driver usb-storage
[337721.467418] USB Mass Storage support registered.
[337722.469071] scsi 2:0:0:0: Direct-Access     I-O DATA USB Flash Disk   D53  PQ: 0 ANSI: 2
[337722.475373] sd 2:0:0:0: Attached scsi generic sg2 type 0
[337722.485674] sd 2:0:0:0: [sdb] 15941632 512-byte logical blocks: (8.16 GB/7.60 GiB)
[337722.489077] sd 2:0:0:0: [sdb] Write Protect is off
[337722.489106] sd 2:0:0:0: [sdb] Mode Sense: 03 00 00 00
[337722.492092] sd 2:0:0:0: [sdb] No Caching mode page found
[337722.492960] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[337722.515985] sd 2:0:0:0: [sdb] No Caching mode page found
[337722.518267] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[337722.671096]  sdb: sdb1 ← ここを確認する
[337722.689994] sd 2:0:0:0: [sdb] No Caching mode page found
[337722.690036] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[337722.690070] sd 2:0:0:0: [sdb] Attached SCSI removable disk

sdb1として認識されました。


では、fdiskコマンドを使用してパーティション情報を確認します。

root@dns:/# fdisk -l

255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006dcd1

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   232382463   116190208   83  Linux
/dev/sda2       232384510   234440703     1028097    5  Extended
/dev/sda5       232384512   234440703     1028096   82  Linux swap / Solaris

Disk /dev/sdb: 8162 MB, 8162115584 bytes
82 heads, 49 sectors/track, 3967 cylinders, total 15941632 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8be02e43

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63    15941631     7970784+   b  W95 FAT32 ← この行がUSBメモリの情報

/dev/sdb1が今回使用しているUSBメモリなのですが、ファイルシステムがFAT32とWindows用のファイルシステムになっています。


このUSBメモリはLinuxメインでの運用を考えているので、ファイルシステムはこの際ext3に変更をしておきます。

root@dns:/# fdisk /dev/sdb

Command (m for help): d ← 領域を削除します。
Selected partition 1

Command (m for help): w ← 変更をディスクに書込み終了します。
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Windows用のファイルシステムを削除しました。


次はパーティションを確保しなおします。

root@dns:/# fdisk /dev/sdb

Command (m for help): p ← 領域を表示します。

Disk /dev/sdb: 8162 MB, 8162115584 bytes
252 heads, 62 sectors/track, 1020 cylinders, total 15941632 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8be02e43

Device Boot      Start         End      Blocks   Id  System ← 削除したので何も表示されない。

Command (m for help): n ← 新規領域作成
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p ← primaryを選択
Partition number (1-4, default 1): 1 ← 1つの領域しか作らないので1を入力
First sector (2048-15941631, default 2048): 2048 ← 先頭領域に何か入っているようなので2048から指定
Last sector, +sectors or +size{K,M,G} (2048-15941631, default 15941631):
Using default value 15941631 ← エンターでLast Sectorを15941631とする

Command (m for help): p ← 領域を表示します。

Disk /dev/sdb: 8162 MB, 8162115584 bytes
252 heads, 62 sectors/track, 1020 cylinders, total 15941632 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8be02e43

Device Boot      Start         End      Blocks   Id  System ← 次行にUSBメモリの領域が表示
/dev/sdb1            2048    15941631     7969792   83  Linux

Command (m for help): w ← 変更をディスクに書込み終了します。
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


念のためfdiskコマンドで内容を確認してみます。

root@dns:/# fdisk -l

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006dcd1

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   232382463   116190208   83  Linux
/dev/sda2       232384510   234440703     1028097    5  Extended
/dev/sda5       232384512   234440703     1028096   82  Linux swap / Solaris

Disk /dev/sdb: 8162 MB, 8162115584 bytes
84 heads, 6 sectors/track, 31630 cylinders, total 15941632 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8be02e43

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    15941631     7969792   83  Linux ← USBメモリの領域が表示

USBメモリの領域が確保できました。


作成したsdb1をext3でフォーマットします。
fdiskだけでは領域を確保しただけなのでフォーマットは別途行う必要があります。

root@dns:/# mkfs.ext3 /dev/sdb1
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
498736 inodes, 1992448 blocks
99622 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2042626048
61 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables:  0/61 1/61 2/61 3/61 4/61 5/61 6/61 7/61 8/61 9/6110/6111/6112/6113/6114/6115/6116/6117/6118/6119/6120/6121/6122/6123/6124/6125/6126/6127/6128/6129/6130/6131/6132/6133/6134/6135/6136/6137/6138/6139/6140/6141/6142/6143/6144/6145/6146/6147/6148/6149/6150/6151/6152/6153/6154/6155/6156/6157/6158/6159/6160/61     done
Writing inode tables:  0/61 1/61 2/61 3/61 4/61 5/61 6/61 7/61 8/61 9/6110/6111/6112/6113/6114/6115/6116/6117/6118/6119/6120/6121/6122/6123/6124/6125/6126/6127/6128/6129/6130/6131/6132/6133/6134/6135/6136/6137/6138/6139/6140/6141/6142/6143/6144/6145/6146/6147/6148/6149/6150/6151/6152/6153/6154/6155/6156/6157/6158/6159/6160/61     done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:  0/61 1/61 2/61 3/61 4/61 5/61 6/61 7/61 8/61 9/6110/6111/6112/6113/6114/6115/6116/6117/6118/6119/6120/6121/6122/6123/6124/6125/6126/6127/6128/6129/6130/6131/6132/6133/6134/6135/6136/6137/6138/6139/6140/6141/6142/6143/6144/6145/6146/6147/6148/6149/6150/6151/6152/6153/6154/6155/6156/6157/6158/6159/6160/61

ようやく使えるようになりました。


マウントしてファイルをコピーしてみます。

root@dns:/# mkdir /mnt/usb
root@dns:/# mount -t ext3 -w /dev/sdb1 /mnt/usb
root@dns:/# ls -la /mnt/usb
drwxr-xr-x 3 root root  4096  2 21 19:57 .
drwxr-xr-x 3 root root  4096  2 21 20:07 ..
drwx------ 2 root root 16384  2 21 19:57 lost+found
root@dns:/# rsync -av home etc /mnt/usb

コピーにはrsyncコマンドを使用します。

バックアップ用コマンドは色々ありますが、rsyncが個人的に好きなだけです。
rsyncがない方は、apt-get install rsync として是非インストールしておきましょう。


ところで、rsyncの書式は、rsync [オプション] コピー元 コピー先 となりコピー元は複数指定可能です。
今回は、homeとetcディレクトリをコピーしています。

rsync -av home/ etc/ /mnt/usb とすると、コピーされる場所が変わるのでご注意ください。


次回は、このUSBメモリをWindows10で表示できるようにしたいと思います。


ではでは~☆ミ

0 件のコメント:

コメントを投稿