質問: これらの文書を忘却から死にかけているマイシンに保存できますか? まず、告白:いいえ、私は持っているべきであるバックアップをしませんでした。第二に、状況:私はソリッドステートディスクを実行しているfedora 25を搭載したdell xps 9550を持っています。ファイルに取り組んでいて、読み取り専用ファイルシステムに保存しようとしていると言われたときに保存しようとしました。私のファイルシステムは現在読み取り専用であることが判明しました、そして至る所にi/oエラーがあります。開いているwebブラウザを介して自分自身にそれらを電子メールで送信することによって、いくつかのファイルを保存することができましたが、それはクラッシュし、私はそれを再起動することができません。しかし、私はまだ興味のあるファイルをエディタで開いています。ファイルをどこにも保存できないようですが、その内容をコピーすることはできます。ファイルの内容を抽出する方法を見つけることができれば、数ヶ月の作業を省くことができます。しかし、いくつかのひどい制限があります。 usbドライブを挿入しようとしましたが、それを表すデバイスが表示されず、mountコマンドがsegfaultで終了します。私は別のコンピュータにssh接続しようとすることができますが、私は「バスエラー」を受け取り、それは死にます。 ping、dmesg、ifconfig、これらのどれも動作しません。しかし、私はvimとlessとlsを持っていて、新しいbashインスタンスを生成することができます。いいえlynx、いいえfirefox、いいえgoogle-chrome。 dvdドライブはありません。基本的にそれは私のssdが死んだようです。またはマザーボード全体かもしれません。私はまだメモリに大きな価値の文書を持っています、私はipアドレスとネットワーク接続を持っています。catとgccはうまくいくようです。/tmpのファイルに書き込めます。まだ動作しているようですが、実行中のipythonインスタンスがあります。だから...私がこれまでに試したことは失敗しました。しかし、私はまだ千の可能性があるように感じます。私は何を考えていませんか?どうすれば私は死にかけているコンピュータからこれらのファイルを入手できますか?方法があるはずです。update:新しいもの: 私は自分の愚かさのためにネットワーク接続を失いました。 cpとcp -rを置き換えるpythonスクリプトを書きました。 sdカード用、またはusbドライブ用の/devエントリを作成する方法を見つけられない限り、データを出力するための私の最善の策は、画面とおそらくスピーカー/オーディオケーブルのようです。 私はファイルを読んで試してみることができるファイルを出力するためのスクリプトを書いています。 提案はまだ大歓迎です!update 2:新しいもの: 死にかけているコンピュータ上で、私は少しずつファイルを読み、スクリーンを1色または別の色に点滅させることによってそれらのビットを伝えることを試みるpythonスクリプトを書きました。現在、赤、緑、青、そして白がすべて2ビットのペアを表す2ビットのコードを作成しようとしています。しかし、これではうまくいきませんので、2色に切り替えて一度に1ビットずつ操作します。 私の他のラップトップ(私がこの熱い新しいxpsのためにあきらめた信頼できる古いthinkpad)で、私はopencv pythonライブラリを使ってウェブカメラから読むスクリプトを書きました。これは、他のコンピュータから送信されたコードを復号化することを目的としています。問題は、カメラからのフレームレートが毎秒15フレームのようなものであるということです。つまり、完璧でエラーのない転送があった場合、私の最大データレートは毎秒30ビット、つまり毎秒225バイトになります。それは一日324kです。 死にかけているxpsでは、tarを使って目的のファイルを1つのアーカイブ(1.7 mb)にまとめることができます。残念ながら、gzip、bzip2、xz、lzop、そしてどんな圧縮ユーティリティも利用できません。しかし、pythonのzlibモジュールを使用すると、このファイルを820kbまで圧縮できます。そのサイズを考えると、私はおそらくこのことを2、3日で送ってもらうことができます。 この転送方法は非常にエラーが発生しやすいので、データを送信するときにエラー訂正を追加するためにxpsにハミングコードを実装します。 たぶんそれが起こるので複雑さがあるでしょう、しかし少なくともそれはどういうわけかこのデータを取り出すことは実行可能であるようです! これはまだかなり厄介なデータ送信方法であるため、私はusbシリアルドライバについて詳しく調べました。私がロードしようとしたモジュール(usb-serial-simple、usb-debug、safe-serial)は入出力エラーを出します。/dev/ttyusb *デバイスが存在しないため、カーネルに組み込まれているとも思いません。 これまでのみんなの提案に感謝します---あなたがみんながどのプログラム/ファイルを読むことができるかどうかわからないのでこれは明確な質問でさえないことを私は知っています。まだこのビデオアプローチよりも良い提案にオープンです!update 3:最新のもの 私はps3 eyeウェブカメラを手に入れました、そしてその自動利得と露出を無効にした後に、1秒あたりのエラー1バイトであるにもかかわらず、xpsからデータを正常に読んでいます。これは大成功です---最初のデータが明らかにされました!しかし、速度が遅すぎて、なんらかの合理的な時間内に820kbを取り出すことができず、エラー率も高すぎます。 問題は、端末への書き込みが遅すぎることです。私がアクセスできるurxvtターミナルエミュレータが遅いことに感謝します(私は思う)。 私はxps上のrustコンパイラにアクセスできることを発見しました。 rustを使用して転送スクリプトを書き直して、端末のリフレッシュ速度が向上するかどうかを確認しましたが、役に立ちませんでした。 私はフレームレートを上げることができそうにないので、私は私が1フレームあたりに得るデータ量を増やすようにしなければならないでしょう。私の現在のアプローチは次のようになります。 右半分はまだクロック信号で、新しいフレームの到着を示すために点滅します。しかし、左はグリッドになっていて、各セルは隅にある赤い四角でマークされています。そして、赤い四角から右下の緑のセルが点滅しています。赤い四角は、受信側のコンピュータにセルの位置を調整させるはずです。私はこの方法でデータをまだ持っていませんが、それが私が取り組んでいるものです。 私はこれらのアドホックカラーパターンの代わりにqrコードを書くことを検討することを誰かが提案しました。私もそれを調べて、おそらくこのグリッドアプローチの代わりにそれを実装するつもりです。エラー訂正は、標準ライブラリを使用してデコードすることができることと同様に、素晴らしい勝利です。 私はlibasound(alsaサウンドライブラリ)にアクセスできるが、それに関連するヘッダファイル(alsa/asoundlib.hなど)にはアクセスできないことを知りました。ヘッダなしで共有ライブラリを利用する方法を誰かが知っている場合、またはオーディオ出力を生成するために正しいヘッダを書くことを手助けできる場合は、オーディオベースの方法でファイルを取り出すことができます。 代わりに、誰かがlibusbにアクセスすることなくusbデバイスを操作するのを手伝うことができるならば、多分私はそれで何かをすることができますか? 前進する!update 4:オーディオ出力が生成されました。ユーザーfrancesco noferiは、前回のアップデートで述べたalsaライブラリを利用するのに役立つ素晴らしい作業をいくつか行っています。 cコンパイラには問題がありましたが、rustコンパイラを使用すると、ffiを使用してlibasoundを直接呼び出すことができました。私は今、オーディオでデータの束を演奏していて、それは私の耳には音楽のように聞こえます!それでも本物の通信チャネルを確立する必要がありますが、私は非常に期待しています。この時点で私の仕事は基本的にモデムを実装することなので、誰かがそのための良い方法について何かガイダンスを持っているのであれば私はすべて耳です。理想的には手動で実装するのが簡単な変調と私が使用できる既存のライブラリがあるための復調。これは電話ネットワークを通さずに直接オーディオケーブルを経由することができるので、理論的には56kbpsよりもはるかに良いことができます。手に入れます。この記事に従ってください、そして at/r/techsupportmacgyver および at/r/rust の非常に多くの優れた貢献に感謝します提案。この「モデム」を間もなく実装するつもりですが、それからエピローグでこれで終わります。将来的に他の絶望的な人々が利用するために自分のコードをどこかに置くかもしれないと思います - たぶん手作業で死にかけているマシンに入力するのが簡単な奇妙な抽出ツールのリポジトリでさえも?何が起こるか見ていきます。update 5:alsaと私の安価なstartech usbオーディオキャプチャデバイスとの戦いには長い時間がかかりました(受信機に内蔵の行はありません)そして、多くの偽りが私自身の送信プロトコルを転がそうとし始めました、しかし私の友人の熱心な友人のアドバイスの下で私は rttyラインプロトコル runningを実行しました150ボー、実際には1秒間に約10バイトです。それは超高速ではありませんが、かなり信頼できます。そして私はcrc32チェックサム(pythonのzlibモジュールのcrc32機能を使って、これにアクセスできます)を使って検証された私の820kbのファイルを転送し終えたところです。だから私は勝利を宣言し、もう一度感謝したいと思います!もう少し時間をかけて、読み取り可能で転送可能なファイルを見つけますが、基盤は整っています。皆さんと一緒に仕事をするのは楽しいことです。最終更新:死にかけているマシンで:$ tar cf ./files $ ./checksum.py ./files.tar 9999999 part 1 checksum: -1459633665 $ ./zlib_compress.py ./files.tar $ ./checksum.py ./files.tar.z 9999999 part 1 checksum: -378365928 $ ./transmit_rust/target/debug/transmit ./files.tar.z transmitting files.tar.gz over audio using rtty period size: 2048 sample rate: 44100 samples per bit: 294 sending start signal. transmitting data. nread: 2048 nread: 2048 ... nread: 2048 nread: 208 transmission complete. sending hold signal. レスキューマシン上:$ minimodem --rx -8 --rx-one -r 44100 -s 915 -m 1085 --startbits 3 --stopbits 2 --alsa=1 150 -q > ./files.tar.z $ ./checksum.py ./files.tar.z part 1 checksum: -378365928 $ ./zlib_decompress.py ./files.tar.z $ ./checksum.py ./files.tar part 1 checksum: -1459633665 :-)
回答: あなたはファイルを送ることを含めてコマンドラインから自分自身に電子メールを送ることができます。何かのようなもの:$ mail -s "hello world" user@yourmaildomain.com < /tmp/urgentfiletosave.txt うまくいくはずです。その他の例: http://www.binarytides.com/linux-mail-command-examples/