10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CroutonでUSBストレージ/SDカード上のファイルシステムをマウントする際のコツ

Last updated at Posted at 2016-05-17

課題

ディスク容量の少ない Chromebook で Crouton を使っていると、外部のストレージにデータやコマンドを置きたいと思うようになります。
その際、下記の問題が出る場合があります。

  • ChromeOS は、/media/removable にマウントするストレージに noexec オプションを付ける
  • executable bit がついたバイナリ/スクリプトを実行できない
  • スリープ時に /media/removable に接続されたディスクのアンマウントを試み、給電を中止する Chromebook がある
  • アンマウント対象のファイルシステムを握っているプロセスがあると、アンマウントされないまま給電が止まる 

後者は DELL Chromebook11 でのみ確認していますが、おそらく他機種でも該当するのではと思っています。
前者は単に実行できないだけなのですが、後者はファイルシステム破損に直結しますので看過できません。

解法

上記2点を解決するスクリプトは、下記のとおりです。

# !/bin/bash

dev=$(/sbin/blkid -L "Ext3")
echo $dev
path_raw=$(udevadm info --query=path $dev)  
path_trunc=`echo "$path_raw" | perl -pe 's|(.*usb[0-9]\/(.*?\/)).*|\1|'`
path="/sys$path_trunc/power/persist"
echo 1 | sudo tee "$path"
sudo mount -oremount,exec $dev

"Ext3" は、スリープ時でも電源を落としたくないファイルシステムのディスクラベルを指定します。"UNTITLED" などお手持ちの環境に合わせて変更してください。
スクリプト内部で sudo を呼んでいるので、パスワードを問われます。

注意事項

私は Crouton に入ってから上記スクリプトを実行しています。ChromeOS/ChromiumOS 単体で動作するかの確認はしていません。

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?