ネットワーク管理者の憂鬱な日常

とある組織でネットワーク管理に携わる管理者の憂鬱な日常を書いてみたりするブログ

FreeBSDでUSBメモリをUFSフォーマットしてmountしてみる

f:id:silvernetworks:20160903215952p:plain

FreeBSDにFAT32でmsdosfsでフォーマットされたUSBメモリをmountする記事を書いたが、これだとcpなどでファイルをコピーしたときにパーミッションが飛んでしまう。

silvernetworks.hatenablog.jp

もちろん、tarでアーカイブされたファイルはパーミッションは保持されるが、何らかの事情でtarアーカイブができない場合、直接USBメモリへファイルをコピーしたい時がある。ということで、USBメモリをUFSでフォーマットしてmountする。なお、実行はFreeBSD 11.0-RC2(amd64)で行った。

1. デバイス名の確認

USBポートにUSBメモリを挿入する。/var/log/messagesに残るログからデバイス名を確認する。

ugen1.2: <GH> at usbus1
umass0: <GH PicoDUAL X, class 0/0, rev 2.00/1.00, addr 2> on usbus1
umass0: SCSI over Bulk-Only; quirks = 0x8100
umass0:3:0: Attached to scbus3
da1 at umass-sim0 bus 0 scbus3 target 0 lun 0
da1: <GH PicoDUAL X PMAP> Removable Direct Access SCSI device
da1: Serial Number 07AB03027BXXXXXX
da1: 40.000MB/s transfers
da1: 15272MB (31277056 512 byte sectors)
da1: quirks=0x2<NO_6_BYTE>

この場合だと、/dev/da1がデバイス名となる。

2. UFSでフォーマット

さくっとnewfsでフォーマット。

# newfs /dev/da1
/dev/da1: 15272.0MB (31277056 sectors) block size 32768, fragment size 4096
using 25 cylinder groups of 626.09MB, 20035 blks, 80256 inodes.
super-block backups (for fsck_ffs -b #) at:
192, 1282432, 2564672, 3846912, 5129152, 6411392, 7693632, 8975872, 10258112, 11540352, 12822592, 14104832,
15387072, 16669312, 17951552, 19233792, 20516032, 21798272, 23080512, 24362752, 25644992, 26927232, 28209472,
29491712, 30773952

これで、UFS2でフォーマットされる。

3. マウント

さっくりとmountコマンドのみでマウント。mountコマンドでUFSとしてマウントされていることが確認できる。

# mount /dev/da1 /mnt
# mount
/dev/da0p2 on / (ufs, local, journaled soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/da1 on /mnt (ufs, local)

当然、cpでコピーしてもパーミッションは飛ばない。

# cp -rp /sbin /mnt
# ls -l /sbin/ping
-r-sr-xr-x 1 root wheel 32488 Aug 24 16:00 /sbin/ping
# ls -l /mnt/sbin/ping
-r-sr-xr-x 1 root wheel 32488 Aug 24 16:00 /mnt/sbin/ping

当然最後はアンマウントでおしまい。

スポンサーリンク