みなさん、こんにちは。
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で表示できるようにしたいと思います。