質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

CRLF

CRLFは、改行コードのことです。 改行コードは、改行を表す制御文字です

Q&A

1回答

1355閲覧

Windows + Hyper-V + Vagrant でファイル共有すると改行コードがCRLFになってしまう。

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

CRLF

CRLFは、改行コードのことです。 改行コードは、改行を表す制御文字です

0グッド

1クリップ

投稿2020/06/22 06:58

編集2020/06/22 08:13

元のファイルの改行コードはLFなのに、
Windowsからファイルを共有すると勝手に改行コードがCRLFになってしまい、
シェルスクリプトが実行できず困っております。
Windows + Hyper-V + Vagrant で、LFはLFのままファイル共有をする方法はないでしょうか?

環境
Windows 10 Pro
Vagrant 2.2.9
Git Bash 4.4.23(1)-release (x86_64-pc-msys)

  • git管理のディレクトリ /vagrant/hoge を smb で共有。

gitの改行コード設定確認

$ git config --global core.autocrlf input

git bash からコマンドでCRLFのあるファイルを検索

$ find . -type f | xargs grep -lzUP '\r\n'

検出なし。

Vagrantファイルの共有設定

# フォルダ共有設定 config.vm.synced_folder "./hoge.", "/vagrant/hoge", type: "smb"

Vagrant起動&接続

vagrant up vagrant ssh

コマンドでCRLFのあるファイルを検索

[vagrant@centos8 bin]$ find . -type f | xargs grep -lzUP '\r\n' ./console ./phpunit ./recreate.sh

検出される。

他に試した方法

# フォルダ共有設定 config.vm.synced_folder "./hoge", "/vagrant/hoge", :owner=> 'vagrant', :group=>'web', :mount_options => ['dmode=775', 'fmode=775']

結果は同じくCRLFのあるファイルとして検出される。

追記
すみません、VMは起動しますが「No valid IDs were given to the NFS synced folder implementation to prune. This is an internal bug with Vagrant and an issue should be filed.」というファイル共有のエラーが出ていました。
共有したファイルはVM内に存在しますが、ホスト側で編集してもゲスト側のファイルが変更されません。

$ vagrant reload ==> default: Attempting graceful shutdown of VM... default: Configuring the VM... ==> default: Starting the machine... ==> default: Waiting for the machine to report its IP address... default: Timeout: 120 seconds default: IP: 192.168.151.2 ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 192.168.151.2:22 default: SSH username: vagrant default: SSH auth method: private key ==> default: Machine booted and ready! No valid IDs were given to the NFS synced folder implementation to prune. This is an internal bug with Vagrant and an issue should be filed.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

「ファイル共有ができていて、Windows側からファイルを編集したら、改行コードがLFからCRLFに変えられる」に関しては、Windows側で使用するファイル編集アプリ(テキストエディタ)の問題です。
(sakuraエディタ等)改行コードを変更しない編集アプリを使ってください。

投稿2020/06/22 09:06

sage

総合スコア1240

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/06/22 12:02

ご回答ありがとうございます。 すみません、テキストエディタの記載が抜けておりました。 テキストエディタはPHPStorm 2020.1.2 です。 ただ、編集後にホストOSのWindowsで $ find . -type f | xargs grep -lzUP '\r\n' と検索して0件なのに、 ゲストOSで $ find . -type f | xargs grep -lzUP '\r\n' と検索すると検出されます。 まるでHyper-Vにマウントされる際に勝手に改行コードがCRLFに変換されているような感じです。
sage

2020/06/22 12:16

編集したファイルだけCRLFに変わるのならば、編集ソフトが原因です。 編集していないファイルも変わるとは思えないのですが、変わっているのですか?
sage

2020/06/22 12:39

windowsのエクスプローラからファイルを指定してプロパティを見るとバイト単位でのファイルサイズを確認できます。 編集前と編集後を比較すると改行コードの数だけ余計に増加しているのではないですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問