タグ付けされた質問 「sd-card」

デジタルカメラ、タブレット、スマートフォンなどのモバイルデバイスで使用されるストレージメディア...

2
ddを実行しています。リソースがビジーなのはなぜですか?
microSDカードをフォーマットしましたが、ddコマンドを実行したいと思います。残念ながら、ddコマンドは失敗します: $ sudo dd bs=1m if=2016-02-26-raspbian-jessie-lite.img of=/dev/rdisk2 dd: /dev/rdisk2: Resource busy $ インターネット上の誰もが、最初にディスクをアンマウントする必要があると言っています。確かに、それをして先に進むことができます。しかし、OS Xでデバイスをビジーにしている理由を正確に知りたいのですが。これを診断するにはどうすればよいですか? これまで私は試しました: 開いているファイルのリスト: $ lsof /dev/disk2 $ lsof /dev/disk2s1 $ また: $ lsof /Volumes/UNTITLED $ ファイルで作業しているユーザーのリスト: $ fuser -u /dev/disk2 /dev/disk2: $ fuser -u /dev/disk2s1 /dev/disk2s1: $ また: $ fuser -u /Volumes/UNTITLED $ システムメッセージを確認します。 $ sudo dmesg …
32 osx  dd  sd-card  resources 


4
Linuxを使用したSDカードのストレステスト
きちんとした(GB +)サイズのSDカードでのfsメタデータのロギングと維持は、カードを装着するほど重要ではないということについて、昨日ここでの答えの論理および/または信regarding性について誰かと少し議論しました妥当な期間(年および年)でアウト。反論の要点は、SDカードを身に着けている人々のオンラインの物語が非常に多いため、私は間違っているに違いないということのように思えました。 私は24時間年中無休のrwルートファイルシステムを含むSDカードを備えたデバイスを持っているので、私は自分の満足する前に前提をテストしました。このテストを少し調整し、実際に同じカードを使用して繰り返し、ここで紹介します。私が持っている2つの中心的な質問は次のとおりです。 私はそれを再書き込み連続の効果を再現することを意図しています念頭に置いて、実行可能なカードを破壊しようとするために使用される方法で、小さなデータの量は? カードを確認するために使用した方法はまだ実行可能ですか? 最初の部分への異議はおそらく私のテストが実際にカードに書き込みをしなかったと断言する必要があるため、SOまたはスーパーユーザーではなくここに質問を入れていますLinuxの特別な知識。 [SDカードが何らかのスマートバッファリングまたはキャッシュを使用し、同じ場所への繰り返し書き込みが摩耗しにくい場所でバッファリング/キャッシュされることも考えられます。私はどこにもこれの兆候を見つけていませんが、SUでそれについて尋ねています] テストの背後にある考え方は、カード上の同じ小さなブロックに何百万回も書き込むことです。これは、そのようなデバイスが何回の書き込みサイクルを維持できるかという主張をはるかに超えていますが、ウェアレベリングが有効であると仮定すると、カードがまともなサイズであれば、「同じブロック」がそうであるように、何百万ものそのような書き込みはまだ重要ではありません文字通り同じ物理ブロックではありません。これを行うには、すべての書き込みがハードウェアと同じ見かけの場所に本当にフラッシュされるようにする必要がありました。 ハードウェアにフラッシュするために、私はPOSIXライブラリ呼び出しに依存しましたfdatasync(): #include <stdio.h> #include <string.h> #include <fcntl.h> #include <errno.h> #include <unistd.h> #include <stdlib.h> // Compile std=gnu99 #define BLOCK 1 << 16 int main (void) { int in = open ("/dev/urandom", O_RDONLY); if (in < 0) { fprintf(stderr,"open in %s", strerror(errno)); exit(0); } …


3
SDカードのこのI / Oエラーを修正する方法は?
gpartedで試しましたが、うまくいきませんでした。完全に消去するウィンドウ用のツールであるSDFormatterを見つけました。 SDカードがあり、そこにDebianをインストールしたい。ddプロセスには約45分かかります。その後、終了します。私のWindowsマシンでは、ドライブリストに表示されますが、フォーマットまたは開こうとしても未定義のエラーが発生します。gpartedが教えてくれる /dev/mmcblk0: unrecognised disk label 私が発行した dd if='deb.iso' of=/dev/mmcblk0 bs=512k dd: error writing „/dev/mmcblk0“: I/O error 0+1 data in 0+0 data out copied 0 Bytes (0 B), 10,098 s, 0,0 kB/s その後私は試しました root@kali:~# lsblk -o NAME,FSTYPE,MOUNTPOINT,SIZE,RO NAME FSTYPE MOUNTPOINT SIZE RO sda 465,8G 0 ├─sda1 ext4 / 450,1G 0 …
14 dd  sd-card 

2
fsckはfsckを実行しません(スーパーブロックフラグを設定できません)
SDカードベースのデバイスでのクリーンでないシャットダウンに続いて、SDカードをfsckルートファイルシステムに取り出しました。これにより、以下のバリエーションが生まれました。 e2fsck 1.43.1 (08-Jun-2016) /dev/sdc2: recovering journal Superblock needs_recovery flag is clear, but journal has data. Run journal anyway<y>? no Clear journal<y>? no e2fsck: unable to set superblock flags on /dev/sdc2 ここでは両方とも「いいえ」と答えましたが、すぐに同じ結果につながらないはい/いいえのシーケンスはありません。 ファイルシステムはマウントすることができ、何気ない検査で大丈夫に見えます。これはデバイスでも正常に動作し、それがルートファイルシステムです(実際には、それほどうまくいかないことが判明しました。コメントを参照してください。回復不能な破損ディレクトリがいくつかあります)。 私はdd「ファイルへのパーティション(8ギガバイト)をD、およびその上でfsckを試してみました。興味深いことに: e2fsck 1.43.1 (08-Jun-2016) plush.rootfs: recovering journal Clearing orphaned inode 18290 (uid=0, gid=0, mode=0100644, size=34096) Clearing orphaned …
12 ext4  fsck  sd-card 

2
ドライブの未割り当て領域をトリムするユーティリティ
いくつかのext4パーティションを含むドライブ(SDカード)がありますが、未割り当ての領域もあります。fstrimユーティリティは、ファイルシステム内で作業することができます。ホイールを再発明してホイールを作成する前に、未割り当てスペースをトリムできる(または明示的に指定された範囲をトリムできる)別のユーティリティはありますか? 私は、デバイス上の未割り当て領域の大部分がされていることを確認することができない私は0を、この特定のカードに、その観察トリミングされた空間リターンに読み込んでてきたように、現在コントローラでないことが知られているが、デバイスショーのスキャン大量のゴミデータが残っています。 編集:を使用して問題が発生していhdparmます。以下の例では最初のセクターを破棄していますが、指定した範囲に関係なく同じ結果が表示されます。fstrimデバイスに問題はありません: root@ubuntu:~# hdparm --please-destroy-my-drive --trim-sector-ranges 0:1 --verbose /dev/mmcblk0 /dev/mmcblk0: trimming 1 sectors from 1 ranges outgoing cdb: 85 0d 06 00 01 00 01 00 00 00 00 00 00 40 06 00 outgoing_data: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 …

4
いつでも電源が切れても安全にSDカードを使用する
私たちは、OSとアプリケーション(250-500Meg)用の小さめの内部NANDデバイスとデータ用の8Gb SDHC SDカードを備えたSDカードを備えた小さな組み込みLinuxシステム(2.6.35-ish)に取り組んでいます。 ユニットの電源はいつでも切ることができます。 システムはSDカードにデータを保存する必要があります。このデータはかなり重要です...それはシステムの全体的な目的です。システムは通常、遠隔地のネットワークから完全に切断されており、データは4〜8週間ごとにスニーカーネット経由で取得されます。 現在、SDカードにVFATが含まれています。これは主に、最初のテストクライアントが簡単に手動でWin7ラップトップにデータをコピーできるようにするためでした。 しかし、私は今、間違った時間に停電が発生してデータが失われるまでは時間の問題だと心配しています。 データの損失を防ぐためにそのようなシステムを構成する最良の方法は何ですか?JFFS2は、データの書き込み方法に関しては私が望んでいるように聞こえます(そして、パフォーマンスのニーズはまったく高くありません)が、block2mtdを使用するのはかなり慎重に聞こえます。それと。 これを行う最良の方法は何ですか? 編集 私は今、ファイルシステムVFATを残して、一度に0xFFで満たされた日サイズのファイルを割り当てることを考えています。これにより、電源サイクルの障害の発生を大幅に制限できます。その後、事前に作成されたブロック内のレコードのみを追加できます。SDカードがそれほど愚かではなく、0xFF領域への書き込み/消去レベルの書き込みができないことを願っています。 noatimeを使用できますが、変更された時間フィールドへの書き込みを防ぐための同等のVFAT nomtimeはありますか?新しい日のファイルが作成されるまで、メタデータの更新をまったく防止する方法が必要です。 編集2 電子スタック交換の誰かが、NANDにもECCデータがあることを思い出させたので、消去の必要性を防ぐ方法はありません。 それで、block2mtdを介したJFFS2はこの状況で適切でしょうか? 編集3 思ったよりひどい。私が持っているSDカードは、ディスクにまったく同じ内容を書き込んでも、データブロックを消去します。消去ブロックは64KBであり、大きすぎて書き込みを完全に遅延させることはできません。NANDフラッシュ(書き込み動作を制御できます)に最大128KBのデータを一種のジャーナルに保存し、SDカードのVFATパーティションにある128KBに整列したファイルに128KBブロックを書き込みます(他のSDカードに128KBの消去ブロックがある場合)。

2
SDカードの一意の識別子を見つける
私はプロジェクトのために追跡する必要がある数十枚のSDカードを持っています。現在、彼らはそれぞれ、外側に永続的なマーカーで物理的に書かれた数字を持っています。これは問題ありませんが、記録できる各SDカードに組み込まれている固有のものがあるかどうかを確認します。これまでのところ私は知っています: SDカードのCID。通常(常にではない???)で、一意のシリアル番号が含まれています。Fedora 21でSDカードからこれを読み取る簡単な方法が見つかりません。カードリーダーを(USB経由ではなく)PCIバスに直接接続しないと、CIDを表示できないというページもあります。 ボリューム/パーティションのシリアル番号。これはうまくいくかもしれませんが、カードが再フォーマットされるたびに変わることを理解しています。これは、私たちが時々行うことです。だから良いオプションではありません。 SDカードのボリュームに、独自の命名システムでラベルを付けるだけです。これは変更するのが簡単すぎるので、外に数字を書くことに固執するかもしれません。 だから、私は私の質問だと思います: Fedora 21または他のGNU / LinuxディストリビューションのUSBカードリーダーを介してシリアル番号を取得するために私のSDカードからCIDを確実に読み取る方法はありますか? そうでない場合、SDカードまたはSDカードを一意に識別する別のシステムで既存の一意の識別子を使用する他の方法はありますか?
10 sd-card 

2
Linux-サポートされていないオプション機能(400)が原因でRDWRをマウントできませんでした
SDカードからAndroidを実行してみます。このカードは用意されています。パーティションがありますboot(FAT32)、rootfs(ext4)、system(ext4)、cache(ext4)とusedata(ext4)。ブートパーティションのu-ブートを実行するためにファイルがあります。MLO、u-boot.binとuImage。実行するには、コマンドを使用します mmcinit 0 fatload mmc 0 0x80000000 uImage setenv bootargs 'console=ttyO2,115200n8 mem=456M@0x80000000 mem=512M@0xA0000000 init=/init vram=10M omapfb.vram=0:4M androidboot.console=ttyO2 root=/dev/mmcblk1p2 rw rootwait rootfstype=ext4' bootm 0x80000000 Linuxがどのように起動するかがわかります。しかし、ロードのステップで数秒後rootfs、エラーメッセージが表示されます [ 4.015655] EXT4-fs (mmcblk1p2): couldn't mount RDWR because of unsupported optional features (400) [ 4.036499] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 4.079986] List of …

2
破損しないファイルシステム(データ損失は許容可能)
この問題を中心に展開している既存のトピックがいくつかありますが、私が求めることは少し異なります。組み込みLinuxにSDカードを使用していますが、電力損失に悩まされています。いつかハードウェアを変更したり、適切に終了したりすることができるかもしれません。しかし、今のところ、大騒ぎすることなく停電に耐えられるファイルシステムを見つけたいと思っています。データの損失は許容されます。私は現在書いているファイルより多くを失いたくないのですが、「マウントできません」、「この10分間fsckを待つ」、または「新しいファイルを作成できません」に直面するよりも、むしろそれを失いたいこのiノードが原因で何かエラーが発生しました。プログラムは続けなければなりません! 私はこれを確実にするために多くの努力をしています。私は工業用グレードのコンポーネントを使用しています。ハードウェアウォッチドッグ、ソフトウェアウォッチドッグ、内部、外部、initによるプログラムの再起動、デーモンによるメモリ、ファイル記述子の常時チェックなど、ウォッチドッグがウォッチドッグを監視し、ウォッチドッグが他のウォッチドッグによって監視されています。 ...しかし、SDカードがマウントされて機能することを保証できないようです。 今の私の最善の策は、SDカードでJFSを使用することです。私のインストールにfsckとfsck.jfsを含めます。(私のRAMと私のフラッシュを食べる600kb +を追加します。これは悪いことです。)そして、毎回の起動時にfsckを実行します(ブート時間が長くなる可能性があります。これはやや悪いことです)。それは少し悲しいようですが。 誰かがより良い方法やより良いファイルシステムを知っていますか? 更新:e2fsprogs-libs(jfsutilsへの依存)は、私のディストリビューションでコンパイルするのが非常に難しいようです。ZFSを調べます(私のディストリビューションにはネイティブではありません。そして、私が必要としないことはたくさんあるようです)。 UPDATE2:私のシステムとテストに関するいくつかの詳細:SDカードストレージは、セカンダリのオプションのストレージです。SDカードは、2Gb-8Gbの工業グレードのmicroSDです。SDカードは、mount -tコマンドでrcを介してマウントされます。オプション「noatime」ではなく「sync」。私のディストリビューションは、3.10カーネルと1.21 busyboxを備えたカスタムAnalog Device風味のuClinuxです。私のプライマリストレージはjffs2を使用したspiフラッシュです。私はそれに関して何の問題も経験したことがありません。利用可能なfsck.jffs2があるかどうかさえわかりません。一方でナンドフラッシュ...しかし、それは別の話です。SDカードの目的は、測定データを保存することです。'monitor'プログラムは結果をファイルに追加し、戦略的な同期配置を備えています。ファイルが所定のサイズを超えると、新しいファイルが作成されます。指定した数のファイルに達すると、最も古いファイルが削除されます。停電が原因で現在の測定ファイルが失われた場合でも、問題はありません。ファイルは通常50〜100 kbで、1つの結果は通常1 kbです。これは初期の開発段階にすぎません。何も修正されていません。組み込みシステムでフラッシュ以外のファイルシステムを扱ったのはこれが初めてです。(x86サーバーでext4を取得しました。) 私はvfatから始めました。デフォルトのファイルシステム。(私は、工場がそれを選択する理由があるかもしれないと考えました。そして、物事がうまくいくならば、私はそれほど気にしません。)私は、組み込みvfatデバイスで電力損失の問題を見たことはありません。WinCEでFATの問題を経験しました。しかし、私の「モニター」プログラムが100-200ファイルに達したとき、それ以上作成することを拒否しました。FATにはルートに特別なファイル制限の問題があり、サブディレクトリに少し大きい問題があるようです。1つのディレクトリに500〜1000個のファイルを作成できるようにする必要があります。したがって、vfatは機能しません。 その後、ext2に切り替えました。起動時にfsckを挿入しませんでした。(私がそうしなければならなかったことを知りませんでした。)1日以内に、「モニター」プログラムは、「iノード何か何か」エラーのためにそれ以上のファイルを作成できませんでした。災害! 私の現在のソリューションは、起動時に「e2fsck -y」を使用したext2です。これまでのところ、それは有望なようです。しかし、e2fsckと「起動時のfsck」の概念全体が私を悩ませています。それ自体によるe2fsckは、私のプライマリフラッシュとRAMの350kb以上を費やしています。(実行されていない場合)これは、これが私の最大のプログラムであることを意味します。それはbusyboxよりも大きいです。それは私のカーネルにほとんど匹敵しています。 私はext3を検討してきました。メタデータをジャーナル化しているので、害はありません。それがどれほど役立つかについては疑問です。私の小さなファイルと制御された同期で、私はカバーされるべきだと思いますか?順序付けされた書き込みシーケンスがあります。データもある程度ジャーナル化されていることを意味します。ただし、これにより非決定的なラグが発生する可能性があります。これは私の状況では悪いです。(それはおそらく問題ではありません。)また、スケジュールされた同期機能があります。例えば。5秒ごとにコミットします。自分の同期を妨げていると思います。SDカードの場合、書き込みが多すぎると良くありません。産業用のものでも。これを無効にする方法に関するドキュメントは見つかりません。そして、ext3はまだ、すべての起動時に実行されるように、fsckを要求します!しかし、ext3はまだ可能性があります。 Ext4。ext3のパフォーマンス問題の多くを修正します。本当にパフォーマンスは必要ありません。そして、私のディストリビューションには組み込みのmkfs.ext4とfsck.ext4がないようです。おそらくそれは問題ではありません。それはそうかもしれません。例えば。e2progs-libs(jfsutilsへの依存関係)には、コンパイルに関する多くの問題があるようです。 JFS、XFS、BRFSS。すべて私のカーネルでサポートされています。現在、ユーザースペースのツールボックスには含まれていません。すべてがかなり大きく複雑なシステムのようです。そして、それらはすべて起動時に「fsck」と同等のものを必要とするようです? 自分のファイルシステムをスローすることも検討しました。常にファイルテーブルのコピーを2つ書き込みます。トラバースするとき、正しいCRCと最新のシーケンス番号を持つものを選択します。2段階の書き込みシーケンスを作成します。一時的に割り当て、コミット時に修正します。fsckは必要ありません。少しナイーブかもしれませんが。 UPDATE3:ところで、組み込みシステム(少なくとも1つ)の性質は、それらが自律的で、無人で、手の届かないところにあり、何年も実行する必要があるということです。fsckのようなプログラムも人間の相互作用を必要とするには、私を這います。

2
カードを物理的に取り外さずにMMCコントローラーをリセットしますか?
私はddrescueを使用してSDHCカードからデータを救出しようとしています: while true ; do ddrescue -d /dev/mmcblk0p1 mmc.img mmc.log ; done コントローラーは、カード上のものか、ラップトップ内のものかはわかりませんが、特定の数の不良セクターが読み取られた後(syslogに表示されます)、すべてのセクターでエラーが返されるようです(これはSyslogに表示されます)、カードを取り出してスロットに再び入れると、これがリセットされ、読み取られた不良セクターが多すぎるまで、正常なセクターが再び良好であることが報告されます。 現在、私はこのループを使用しており、ddrescueのステータス出力を監視し、カードを手動でリセットしています。カードを取り外さずにコントローラーをリセットして、レスキュープロセスを無人で実行できる方法はありますか? これは関連しているかもしれませんが、このDellラップトップでは、カードが挿入されたことにリーダーが気付くためにも、ブート時またはの使用時にecho 1 > /sys/bus/pci/rescan1回だけ実行する必要があります。その後、リーダーのPCIデバイスが表示され、すべてが期待どおりに機能します。 07:00.0 System peripheral: JMicron Technology Corp. SD/MMC Host Controller (rev 30) Subsystem: Dell Device 046e Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at f0600000 (32-bit, non-prefetchable) [size=256] Capabilities: [a4] …

2
mmc0:SDカードの初期化中にエラー-110
Archに問題があります。SDを挿入すると、検出できません。 また、次のエラーカーネルログが見つかりました。 uname -a Linux localhost.localdomain 4.9.6-1-ARCH #1 SMP PREEMPT Thu Jan 26 09:22:26 CET 2017 x86_64 GNU/Linux dmesg [ 3.663535] mmc0: error -110 whilst initialising SD card [ 4.515911] random: fast init done [ 4.720224] mmc0: error -110 whilst initialising SD card lspci -v 00:00.0 Host bridge: Intel Corporation …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.