亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

qemu-user-static實(shí)戰(zhàn):從chroot到Docker buildx的跨架構(gòu)模擬指南

qemu-user-static實(shí)戰(zhàn):從chroot到Docker buildx的跨架構(gòu)模擬指南 簡介面向跨架構(gòu)容器運(yùn)行場(chǎng)景的 qemu-user-static 是一套輕量工具資源基于 QEMU 用戶態(tài)模擬和 binfmt_misc 內(nèi)核機(jī)制解決在 x86 宿主機(jī)上直接執(zhí)行 arm64 等不同體系結(jié)構(gòu)容器時(shí)出現(xiàn)的格式錯(cuò)誤問題。它特別適合需要構(gòu)建多架構(gòu)鏡像、搭建異構(gòu)持續(xù)集成環(huán)境的中高級(jí)運(yùn)維和容器開發(fā)者。整個(gè)壓縮包僅 44KB總共收納 17 個(gè)文件主體由 6 份 Markdown 說明文檔構(gòu)成分別介紹使用指南、開發(fā)者開發(fā)手冊(cè)、兼容鏡像清單以及多種實(shí)際示例另有 5 個(gè) Shell 腳本覆蓋注冊(cè)執(zhí)行器、發(fā)布鏡像、自動(dòng)測(cè)試與生成發(fā)布包等流程并附帶 Dockerfile、GitHub Actions 工作流配置文件、許可證和忽略規(guī)則文件目錄結(jié)構(gòu)清晰便于快速閱讀和復(fù)用。目前已有 587 人學(xué)習(xí)。借助這份內(nèi)容讀者能夠理解 qemu-user-static 配合 binfmt_misc 實(shí)現(xiàn)跨架構(gòu)容器執(zhí)行的完整原理獲得一鍵式注冊(cè)和測(cè)試腳本并參照官方文檔與示例在本地快速復(fù)現(xiàn)從 x86_64 跨平臺(tái)運(yùn)行 arm64 容器的全過程省去反復(fù)排查環(huán)境兼容性的時(shí)間直接掌握多架構(gòu)容器環(huán)境搭建的關(guān)鍵技能。1. qemu-user-static 是什么一條命令讓 x86 主機(jī)跑透三種架構(gòu)如果你維護(hù)過 CI 流水線大概率遇到過這種場(chǎng)景宿主機(jī)是 x86_64但構(gòu)建產(chǎn)物要跑在 arm64 嵌入式板子上。以往的做法是開一臺(tái) ARM 服務(wù)器或者用 qemu-system 起整機(jī)虛擬機(jī)慢且折騰。qemu-user-static 提供的是另一條路/usr/bin/qemu-*-static是一批靜態(tài)編譯的 QEMU 用戶態(tài)模擬器它不模擬整臺(tái)機(jī)器只翻譯 CPU 指令讓 x86_64 內(nèi)核直接把 arm64 的 ELF 文件當(dāng)作普通進(jìn)程來執(zhí)行。實(shí)際效果就是chroot arm64_rootfs /bin/ls能直接跑出 aarch64 的lsDocker 里--platform linux/arm64的鏡像也能在 x86 主機(jī)上 build 和 run。這套機(jī)制對(duì)嵌入式交叉開發(fā)、多架構(gòu)容器鏡像構(gòu)建、CI 矩陣測(cè)試都極有用而且最終落到 Shell 命令上不過三五條。適合誰不想養(yǎng) ARM 機(jī)器但又必須產(chǎn)出、運(yùn)行、調(diào)試異架構(gòu)程序的開發(fā)者。2. 選擇靜態(tài)版模擬器動(dòng)態(tài)版與靜態(tài)版的取舍和 binfmt_misc 的工作原理2.1 動(dòng)態(tài)版與靜態(tài)版文件體積不是唯一差別QEMU 用戶態(tài)模擬器其實(shí)有兩類安裝產(chǎn)物。一類是發(fā)行版?zhèn)}庫里的qemu-user裝完是/usr/bin/qemu-aarch64這種動(dòng)態(tài)鏈接版本另一類是qemu-user-static裝完是/usr/bin/qemu-aarch64-static靜態(tài)鏈接、單文件、不依賴宿主機(jī)的 glibc。很多人以為區(qū)別只是體積其實(shí)選型上差很遠(yuǎn)。動(dòng)態(tài)版模擬器依賴宿主機(jī)的動(dòng)態(tài)鏈接庫意味著它只能在「當(dāng)前宿主環(huán)境」里跑你想把它拷進(jìn)一個(gè) arm64 的 rootfs 或者容器里它一進(jìn)去就因缺庫報(bào)廢。靜態(tài)版沒有這個(gè)包袱qemu-aarch64-static拷到哪都能執(zhí)行這正是 chroot、Docker 多架構(gòu)構(gòu)建場(chǎng)景里最需要的特性。對(duì)比項(xiàng)動(dòng)態(tài)版 qemu-user靜態(tài)版 qemu-user-static依賴宿主機(jī) glibc 及一堆 .so無單文件靜態(tài)鏈接體積幾百 KB 到 1MB幾 MB 到十幾 MB拷入 rootfs/容器不行缺庫直接拷過去就能用適用場(chǎng)景宿主機(jī)上偶發(fā)跑一下chroot、Docker buildx、CI 矩陣此外還有性能差異。靜態(tài)版因?yàn)榫幾g時(shí)開啟了更多優(yōu)化翻譯執(zhí)行時(shí)的額外開銷通常比動(dòng)態(tài)版略低。當(dāng)然這只是體感極端性能場(chǎng)景還是別指望模擬器老老實(shí)實(shí)用真機(jī)。我一般會(huì)在開發(fā)機(jī)里把兩個(gè)都裝上日常調(diào)試用動(dòng)態(tài)版凡是涉及 chroot、容器、CI 一律切到靜態(tài)版。2.2 binfmt_misc 的匹配機(jī)制magic 字節(jié)與解釋器的約定qemu-user-static 能生效依賴 Linux 內(nèi)核的binfmt_misc模塊。這個(gè)模塊允許管理員注冊(cè)「文件格式 → 解釋器」的映射內(nèi)核看到目標(biāo)文件頭部特征匹配后就把這個(gè)文件交給指定解釋器執(zhí)行。對(duì)于 ELF 文件匹配特征就是文件頭的 magic 字節(jié)。比如 arm64 的 ELF 頭是\x7fELF加 64 位標(biāo)記加 machine 字段值 1830xB7。注冊(cè)記錄長這樣# 注冊(cè) arm64 格式到 binfmt_misc實(shí)際中建議用 qemu-binfmt-conf.sh這里僅為展示格式 sudo sh -c echo :qemu-aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-aarch64-static: /proc/sys/fs/binfmt_misc/register這段命令的含義是當(dāng)內(nèi)核遇到一個(gè) ELF 文件其頭部前 20 個(gè)字節(jié)與前面那個(gè) magic 串按 mask 逐位比對(duì)能對(duì)上、且 machine 字段是 0xB7aarch64時(shí)把執(zhí)行權(quán)交給/usr/bin/qemu-aarch64-static。mask 里的\xfe表示 cpu 架構(gòu)字段的最后一字節(jié)不參與比較這樣可以兼容大小端。注冊(cè)完成后你再直接執(zhí)行一個(gè) arm64 二進(jìn)制內(nèi)核會(huì)發(fā)現(xiàn)它的頭匹配這條規(guī)則自動(dòng)用 qemu 去啟動(dòng)它對(duì)用戶來說完全透明。這套機(jī)制像是一個(gè)黑匣子你不需要理解每一次系統(tǒng)調(diào)用怎么被模擬只要知道「注冊(cè)了格式異架構(gòu)程序就能在當(dāng)前內(nèi)核上直接運(yùn)行」。2.3 為什么不建議手寫注冊(cè)記錄版本差異與參數(shù)陷阱手寫注冊(cè)記錄看起來很酷但實(shí)操里有坑。第一不同架構(gòu)的 ELF machine 字段值不一樣記錯(cuò)一個(gè)字節(jié)整條規(guī)則就廢了第二QEMU 版本更新后解釋器路徑和 flags 有變化你手寫的記錄可能和當(dāng)前 qemu-user-static 包不匹配。第三某些規(guī)則還需要F標(biāo)志fix binary讓內(nèi)核把腳本解釋器也交給 qemu 處理少了這個(gè)標(biāo)志容器里跑#!/bin/sh腳本會(huì)直接炸。所以我一般推薦直接用現(xiàn)成工具注冊(cè)。Debian/Ubuntu 系裝完qemu-user-static后qemu-binfmt-conf.sh腳本就在/usr/bin下或者用 Docker 鏡像里的注冊(cè)器# 推薦方式用 multiarch/qemu-user-static 鏡像完成注冊(cè) sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes--reset表示重置已有注冊(cè)記錄-p yes表示注冊(cè)為「持久」格式避免某些系統(tǒng)在重啟或容器重建后把規(guī)則清掉。--credential yes會(huì)根據(jù)目標(biāo)程序的 uid/gid 切換模擬器權(quán)限涉及文件權(quán)限敏感的場(chǎng)景建議加上。用完檢查一下注冊(cè)表是否真的寫進(jìn)去了# 查看所有已注冊(cè)的解釋器 ls -l /proc/sys/fs/binfmt_misc/ | grep qemu # 查看某個(gè)架構(gòu)的具體規(guī)則內(nèi)容 cat /proc/sys/fs/binfmt_misc/qemu-aarch64輸出里能看到enabled和interpreter字段確認(rèn)指向的是/usr/bin/qemu-aarch64-static而不是動(dòng)態(tài)版qemu-aarch64這一步能省掉后面很多莫名其妙的報(bào)錯(cuò)。3. 從安裝到第一個(gè)跨架構(gòu)程序注冊(cè)、chroot 與調(diào)試參數(shù)3.1 安裝、注冊(cè)與驗(yàn)證三條命令理清環(huán)境以 Debian/Ubuntu 系為例安裝包很小裝完注冊(cè)器也一起到位# 安裝靜態(tài)模擬器和 binfmt 支持 sudo apt update sudo apt install -y qemu-user-static binfmt-support # 注冊(cè)所有支持的架構(gòu)到內(nèi)核 sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes第一行安裝的是實(shí)際的qemu-*-static文件第二行才是往內(nèi)核里寫格式規(guī)則。如果你不想依賴 Docker也可以直接跑sudo /usr/bin/qemu-binfmt-conf.sh --qemu-suffix -static --systemd all效果類似。注意這臺(tái)機(jī)器必須開了CONFIG_BINFMT_MISC一般發(fā)行版默認(rèn)都開。驗(yàn)證環(huán)境是否就緒就看注冊(cè)表# 檢查 arm64 是否注冊(cè)成功 cat /proc/sys/fs/binfmt_misc/qemu-aarch64 # 如果輸出 interpreter 為 /usr/bin/qemu-aarch64-static 且 enabled說明環(huán)境 OK3.2 chroot 運(yùn)行 arm64 程序最小可復(fù)現(xiàn)的步驟假設(shè)你有一個(gè)解壓好的 arm64 rootfs 在/opt/arm64-rootfs里面是一套完整的 Debian arm64 文件系統(tǒng)。想在這個(gè) rootfs 里執(zhí)行命令必須先復(fù)制靜態(tài)模擬器進(jìn)去因?yàn)?chroot 后看不到宿主的/usr/bin# 把靜態(tài)模擬器拷進(jìn) rootfs sudo cp /usr/bin/qemu-aarch64-static /opt/arm64-rootfs/usr/bin/ # 掛載必要的虛擬文件系統(tǒng)很多工具依賴 /proc /sys 才能正常工作 sudo mount -t proc /proc /opt/arm64-rootfs/proc sudo mount -t sysfs /sys /opt/arm64-rootfs/sys # 進(jìn)入 rootfs 執(zhí)行命令 sudo chroot /opt/arm64-rootfs /bin/sh -c uname -m cat /etc/os-release如果一切正常uname -m會(huì)輸出aarch64。這一步里最容易踩的坑是忘記復(fù)制qemu-aarch64-static結(jié)果 chroot 后執(zhí)行任何命令都報(bào)Exec format error。另外掛載/proc和/sys不是可選項(xiàng)很多程序一進(jìn)來就訪問/proc/self/status沒掛載直接段錯(cuò)誤。如果你經(jīng)常進(jìn)出 rootfs可以把掛載寫在一條命令里sudo chroot /opt/arm64-rootfs /bin/sh -c uname -m ls /3.3 調(diào)試參數(shù)QEMU_STRACE 與 QEMU_LD_PREFIX 的用法模擬器跑起來后應(yīng)用如果崩了你第一反應(yīng)可能是「模擬器壞了」。其實(shí) qemu-user 提供了幾個(gè)很實(shí)用的環(huán)境變量能幫你快速定位問題。QEMU_STRACE1會(huì)讓 qemu 打印目標(biāo)程序發(fā)起的每一次系統(tǒng)調(diào)用相當(dāng)于給異架構(gòu)程序裝了個(gè) strace。比如懷疑ls卡在某個(gè) syscall 上可以這樣跑sudo env QEMU_STRACE1 QEMU_LD_PREFIX/opt/arm64-rootfs chroot /opt/arm64-rootfs /bin/ls /輸出會(huì)顯示 openat、getdents64 這些調(diào)用的參數(shù)和返回值??吹紼NOENT就知道是路徑不對(duì)看到EACCES就是權(quán)限問題比對(duì)著源碼猜快得多。QEMU_LD_PREFIX是另一個(gè)常被忽略的參數(shù)。qemu 模擬動(dòng)態(tài)鏈接器時(shí)會(huì)按目標(biāo)架構(gòu)的默認(rèn)路徑去找?guī)?。但?chroot 或交叉跑時(shí)依賴庫可能并不在標(biāo)準(zhǔn)位置。指定這個(gè)變量后qemu 會(huì)優(yōu)先去你給的路徑下找# 讓模擬器去 rootfs 里找動(dòng)態(tài)庫 sudo env QEMU_LD_PREFIX/opt/arm64-rootfs \ QEMU_STRACE1 \ /usr/bin/qemu-aarch64-static /opt/arm64-rootfs/bin/bash這種用法適合不想 chroot、只想單獨(dú)跑一個(gè)目標(biāo)架構(gòu)程序的場(chǎng)景。QEMU_CPU也可以指定 CPU 型號(hào)比如QEMU_CPUcortex-a72能模擬出更接近真實(shí)硬件的特性某些和 CPU 指令集強(qiáng)相關(guān)的代碼段會(huì)依賴這個(gè)參數(shù)。4. Docker 多架構(gòu)構(gòu)建實(shí)戰(zhàn)buildx 與 qemu-*-static 的執(zhí)行鏈4.1 buildx 背后的執(zhí)行鏈RUN 指令怎么被模擬用docker buildx build --platform linux/arm64構(gòu)建鏡像時(shí)宿主機(jī)是 x86_64BuildKit 拉取的基礎(chǔ)鏡像卻是 arm64 的。問題來了構(gòu)建過程中每一條RUN指令都要在新的容器層里執(zhí)行容器里的二進(jìn)制全是 arm64如果內(nèi)核不能識(shí)別構(gòu)建立刻失敗。其實(shí)內(nèi)核對(duì)二進(jìn)制的識(shí)別走的就是 binfmt_misc?;A(chǔ)鏡像里有qemu-aarch64-static嗎沒有它只是 arm64 的 rootfs。但 BuildKit 在做RUN時(shí)會(huì)以某種方式把 qemu 靜態(tài)模擬器注入到容器里。這個(gè)動(dòng)作依賴宿主內(nèi)核已經(jīng)注冊(cè)了對(duì)應(yīng)的 binfmt 規(guī)則——也就是你在docker buildx create之前必須先執(zhí)行的那條注冊(cè)命令sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes如果在沒注冊(cè)的狀態(tài)下強(qiáng)行--platform linux/arm64構(gòu)建最常見的報(bào)錯(cuò)就是exec /bin/sh: exec format error。這條錯(cuò)誤其實(shí)就是內(nèi)核在說我沒見過這種 ELF 頭也不知道該找誰解釋。4.2 多架構(gòu)鏡像構(gòu)建與推送的完整流程環(huán)境齊了以后完整的多架構(gòu)構(gòu)建流程大概是這樣的# 1. 注冊(cè) binfmt每次機(jī)器重啟后都要確認(rèn)一次 sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # 2. 創(chuàng)建一個(gè)支持多架構(gòu)的 buildx builder docker buildx create --name multiarch-builder --use docker buildx inspect --bootstrap # 3. 構(gòu)建并推送多架構(gòu)鏡像 docker buildx build \ --platform linux/amd64,linux/arm64,linux/arm/v7 \ -t your-registry.example.com/demo:latest \ --push .參數(shù)說明docker buildx create --name multiarch-builder --use創(chuàng)建一個(gè)獨(dú)立 builder 實(shí)例--bootstrap會(huì)啟動(dòng)它并順便驗(yàn)證 qemu 是否介入成功。--platform后面跟的是逗號(hào)分隔的目標(biāo)平臺(tái)列表會(huì)分別構(gòu)建每個(gè)平臺(tái)的鏡像層。--push直接把 manifest list 推到遠(yuǎn)端倉庫本地不留中間產(chǎn)物。如果你只想在本地驗(yàn)證構(gòu)建結(jié)果而不推送把--push換成--load就行。但注意--load一次只能加載一個(gè)平臺(tái)到本地 Docker想同時(shí)看兩個(gè)平臺(tái)得分兩次 build。構(gòu)建時(shí)觀察日志留意是否出現(xiàn)#1 [linux/arm64 internal] booting buildkit和qemu-*相關(guān)字樣出現(xiàn)說明模擬器參與了解釋執(zhí)行。4.3 arm/v7 的浮點(diǎn)問題為什么 32 位 ARM 經(jīng)常翻車三平臺(tái)構(gòu)建里linux/arm64和linux/amd64通常問題不大真正讓人血壓升高的是linux/arm/v7。這個(gè)平臺(tái)對(duì)應(yīng) 32 位 ARM用的是硬浮點(diǎn) ABIarmhfqemu-arm 在模擬它時(shí)經(jīng)常出現(xiàn)莫名其妙的段錯(cuò)誤尤其是構(gòu)建 Alpine 或依賴 musl 的鏡像時(shí)。我實(shí)際項(xiàng)目中遇到的情況是同樣的 Dockerfilearm64 一遍過arm/v7 在RUN apk add階段隨機(jī)崩潰重跑一次可能成功可能不成功。這種玄學(xué)問題很惱人排查方向有兩個(gè)。第一確認(rèn) qemu-user-static 版本不要太舊舊版對(duì) armv7 的 VFP 浮點(diǎn)指令模擬有缺陷升級(jí)到新版能解決大部分隨機(jī)崩潰第二換用QEMU_CPUmax讓 qemu 以最完整的 CPU 特性去模擬寫法是在 Dockerfile 里加一句ENV QEMU_CPUmax如果加了仍不穩(wěn)定我會(huì)直接放棄在 x86 上 build arm/v7改用linux/arm64加 32 位兼容層的方式或者把 arm/v7 的構(gòu)建任務(wù)放到 arm64 的真實(shí)服務(wù)器上跑。畢竟不是所有模擬問題都能靠升級(jí)版本解決有時(shí)候成本控制比追求大而全更重要。5. 避坑qemu-user-static 使用中的 5 個(gè)高頻問題5.1 binfmt_misc 只讀導(dǎo)致注冊(cè)失敗現(xiàn)象執(zhí)行docker run --rm --privileged multiarch/qemu-user-static --reset -p yes報(bào)錯(cuò)提示cannot mount binfmt_misc: Read-only file system或者Operation not permitted。原因宿主機(jī) systemd 在某些版本里把/proc/sys/fs/binfmt_misc掛成了只讀或者你的 Docker 守護(hù)進(jìn)程沒開特權(quán)模式容器內(nèi)看到的是只讀掛載還有一種情況是宿主機(jī)內(nèi)核模塊沒加載。解決先把 binfmt_misc 重新掛載為可寫再執(zhí)行注冊(cè)sudo mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc -o remount,rw # 或者卸載重掛 sudo umount /proc/sys/fs/binfmt_misc 2/dev/null || true sudo mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc然后再跑注冊(cè)命令。如果還是不行檢查內(nèi)核模塊modprobe binfmt_misc。5.2 Exec format error注冊(cè)丟失與內(nèi)核配置缺失現(xiàn)象docker run --platform linux/arm64 ubuntu uname -m或直接執(zhí)行 arm64 二進(jìn)制報(bào)exec format error。原因最常見的是注冊(cè)表被清空了。內(nèi)核升級(jí)、Docker 重啟、某些系統(tǒng)服務(wù)啟動(dòng)順序問題都會(huì)導(dǎo)致 binfmt_misc 規(guī)則丟失。另外如果宿主內(nèi)核編譯時(shí)沒開CONFIG_BINFMT_MISC怎么注冊(cè)都沒用。解決按順序排查# 1. 看注冊(cè)表在不在 ls /proc/sys/fs/binfmt_misc/ # 2. 確認(rèn)內(nèi)核配置 zcat /proc/config.gz | grep BINFMT_MISC # 或 grep BINFMT_MISC /boot/config-$(uname -r) # 3. 重新注冊(cè) sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes如果第 1 步輸出為空且第 2 步確認(rèn)內(nèi)核沒開就只能換內(nèi)核或改用qemu-system全系統(tǒng)模擬兜底。5.3 chroot 后報(bào) No such file or directory現(xiàn)象你 chroot 進(jìn) arm64 rootfs 后執(zhí)行./app文件存在且?guī)?zhí)行權(quán)限但 Shell 報(bào)No such file or directory。原因目標(biāo)程序是動(dòng)態(tài)鏈接的它的 ELF 頭里記錄了 interpreter 路徑比如/lib/ld-linux-aarch64.so.1。如果你的 rootfs 里缺少這個(gè)動(dòng)態(tài)鏈接器內(nèi)核加載程序時(shí)發(fā)現(xiàn) interpreter 不存在就返回這個(gè)讓人困惑的錯(cuò)誤。解決用file確認(rèn)程序的依賴情況再用 QEMU_LD_PREFIX 或補(bǔ)齊庫文件# 查看目標(biāo)程序的架構(gòu)和 interpreter file /opt/arm64-rootfs/bin/app # 用 QEMU_LD_PREFIX 指定 rootfs 作為庫搜索路徑 sudo env QEMU_LD_PREFIX/opt/arm64-rootfs \ /usr/bin/qemu-aarch64-static /opt/arm64-rootfs/bin/app # 或者補(bǔ)齊動(dòng)態(tài)鏈接器推薦 sudo cp /opt/arm64-rootfs/lib/ld-linux-aarch64.so.1 /opt/arm64-rootfs/lib/這個(gè)坑在交叉編譯場(chǎng)景特別常見很多人都被「文件在、權(quán)限對(duì)、跑不了」繞進(jìn)去過??吹絅o such file or directory先別懷疑路徑用file看一眼 dependency 或者直接readelf -l app | grep interpreter。5.4 隨機(jī)段錯(cuò)誤qemu-user 的信號(hào)與浮點(diǎn)差異現(xiàn)象同一個(gè)程序用 qemu 跑有時(shí)正常有時(shí) Segmentation fault而且崩潰位置不固定重跑可能又好了。原因qemu-user 對(duì)信號(hào)處理和一些浮點(diǎn)指令的模擬與真實(shí)內(nèi)核存在差異。尤其是 armv7 的硬浮點(diǎn)指令、ARM 特有的 cache 同步指令、某些clone標(biāo)志位在模擬環(huán)境下行為可能略微不同。多線程程序更容易觸發(fā)。解決第一步升級(jí) qemu-user-static 到最新版本這類問題多數(shù)在新版修復(fù)第二步設(shè)置QEMU_CPUmax放寬 CPU 特性模擬第三步如果還崩就不要在模擬器里死磕把問題程序挪到真實(shí) arm64 硬件或 qemu-system 全系統(tǒng)虛擬機(jī)里復(fù)現(xiàn)。記錄崩潰現(xiàn)場(chǎng)時(shí)配合QEMU_STRACE1抓到崩潰前的最后一個(gè)系統(tǒng)調(diào)用能給排查提供關(guān)鍵線索。5.5 QEMU 版本與內(nèi)核版本的兼容邊界現(xiàn)象同一份 rootfs在 A 機(jī)器上跑得好好的搬到 B 機(jī)器內(nèi)核更新后程序啟動(dòng)就報(bào)非法指令或者直接卡死。原因qemu-user 和內(nèi)核之間存在一個(gè)隱形的兼容邊界。太老的 qemu 不認(rèn)識(shí)新內(nèi)核新增的系統(tǒng)調(diào)用反過來太新的 qemu 用了一些新的 syscall 特性老內(nèi)核不支持也會(huì)出問題。這類問題很難從報(bào)錯(cuò)信息直接看出來。解決強(qiáng)制統(tǒng)一模擬器版本和內(nèi)核版本尤其是在 CI 環(huán)境里# 固定 qemu-user-static 版本Debian/Ubuntu 示例 sudo apt install -y qemu-user-static1:8.2.0dfsg-1 # 跑之前打印模擬器版本留作日志 /usr/bin/qemu-aarch64-static --version如果你在容器里跑multiarch/qemu-user-static鏡像會(huì)跟隨 QEMU 版本更新建議在 CI 里固定鏡像 tag而不是用latest。模擬器和內(nèi)核的關(guān)系比我以前以為的要脆弱得多版本對(duì)齊能消掉一大批「換了臺(tái)機(jī)器就翻車」的問題。6. 進(jìn)階把注冊(cè)、依賴和 rootfs 進(jìn)入壓進(jìn)一個(gè) Shell 函數(shù)6.1 一個(gè) Shell 函數(shù)三步合一步實(shí)際工作里我不會(huì)每次都手敲前面那一長串命令。交叉開發(fā)時(shí)我通常是這樣的節(jié)奏宿主 x86_64目標(biāo) arm64rootfs 在磁盤某處每天要進(jìn)進(jìn)出出十幾次。于是我把「復(fù)制模擬器 → 確認(rèn)注冊(cè) → 掛載虛擬文件系統(tǒng) → chroot」壓縮成一個(gè) Shell 函數(shù)放進(jìn)~/.bashrc#!/usr/bin/env bash # 用法: qemu-chroot arch rootfs [cmd...] # arch: aarch64 / arm / riscv64 # rootfs: 目標(biāo)架構(gòu)的根文件系統(tǒng)目錄 qemu-chroot() { local arch$1 rootfs$2 shift 2 local qemuqemu-${arch}-static local qemu_host/usr/bin/${qemu} if [ ! -f ${rootfs}/usr/bin/${qemu} ]; then sudo cp ${qemu_host} ${rootfs}/usr/bin/ fi if [ ! -r /proc/sys/fs/binfmt_misc/${qemu} ]; then sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes /dev/null fi for m in proc sys dev; do [ -d ${rootfs}/${m} ] || sudo mkdir -p ${rootfs}/${m} mountpoint -q ${rootfs}/${m} || sudo mount --bind /${m} ${rootfs}/${m} done sudo chroot ${rootfs} $ }函數(shù)邏輯分四步第一步如果 rootfs 里沒有對(duì)應(yīng)架構(gòu)的靜態(tài)模擬器就從宿主復(fù)制一份第二步如果 binfmt_misc 里沒有對(duì)應(yīng)架構(gòu)的注冊(cè)記錄就重置注冊(cè)一次第三步/proc、/sys、/dev缺哪個(gè)掛哪個(gè)用mountpoint -q判斷避免重復(fù)掛載第四步chroot 進(jìn)入 rootfs 執(zhí)行傳入的命令。每次進(jìn) rootfs 前強(qiáng)制走一遍這套檢查能省去至少半小時(shí)的排錯(cuò)時(shí)間。6.2 用來跑交叉編譯結(jié)果驗(yàn)證這個(gè)函數(shù)最常用的場(chǎng)景是驗(yàn)證交叉編譯產(chǎn)物。項(xiàng)目在 x86 上交叉編譯出一個(gè) arm64 二進(jìn)制以前我只能file看一下架構(gòu)然后丟到 CI 里等真機(jī)跑?,F(xiàn)在直接調(diào)函數(shù)# 編譯完馬上在 rootfs 里試運(yùn)行 qemu-chroot aarch64 /opt/arm64-rootfs /app/hello --version # 或者進(jìn)入交互式 shell qemu-chroot aarch64 /opt/arm64-rootfs /bin/bash參數(shù)說明aarch64對(duì)應(yīng)qemu-aarch64-static/opt/arm64-rootfs是 rootfs 根目錄后面的/app/hello --version是目標(biāo)架構(gòu)里要執(zhí)行的命令。想進(jìn)交互式 shell 就傳/bin/bash。對(duì)于依賴復(fù)雜、需要?jiǎng)討B(tài)鏈接庫的程序先把編譯時(shí)用到的.so拷貝到 rootfs 對(duì)應(yīng)目錄再進(jìn)函數(shù)測(cè)試基本能模擬出真機(jī) 90% 的運(yùn)行行為。我從某次 CI 事故里學(xué)到的教訓(xùn)是當(dāng)時(shí)為了省事跳過了「復(fù)制模擬器」這一步結(jié)果 runner 緩存清理后 rootfs 里沒了qemu-aarch64-static所有測(cè)試在最后階段全部Exec format error從日志到定位花了大半天最后發(fā)現(xiàn)就是少了一個(gè)文件。從那以后我每次進(jìn) rootfs 都強(qiáng)制完整走一遍這套函數(shù)里的四步檢查不再憑印象省略任何一步。模擬器這東西用對(duì)了是效率利器漏了一步就是時(shí)間黑洞。希望這篇筆記能幫你在跨架構(gòu)開發(fā)里少踩幾個(gè)坑。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲自拍偷拍视频在线| 日本不卡高清视频| 亚洲欧美国产日本一区二区三区| 婷婷五月天色网| 天天操夜夜操狠很操| 日韩三级久久久| 亚洲校园激情| 一区二区三区四区色图| 一区二区三区四区理论片| a级理论午夜日本| 校园春色宗合网| 国产特级毛片AAAAAA高潮流水| 日本 成 人 小说 电影 一区二区| 欧美瑟综合| 日本三级日本三级99| 欧美人人天天网| 岛国艾薇凹凸视频天堂| 国产精品一级二级在线| 国产成人久久久精品免费AV| 嗯嗯嗯啊啊在线观看| 色色色欧美| 欧美色图片色哟哟| 67914亚洲精品| 国产精品久久久亚洲第一牛牛_在线观看 | 青青青操| Sekablack无码一区| 性生活无遮挡纯毛片在线看| 在线可观看的黄色网址| 人妻丰满熟妇av无码区蜜桃| 五月天激情网图片| 日韩强奸av| 在线亚洲精品久久久| 超97在线精品视频| 亚洲有薄码区久久在线一区| 美女AV一区二区| 女同性恋久久| 少妇熟女1区2区3区| 黑人与人妻| 日日碰狠狠添天天爽超| 亚洲欧美色图片| 超碰性爱97| 97在线观看播放视频| 久久久熟女一区| 国产999精品久久久久久| 天天射夜夜骑| 夜草欧美| 99热66| 人妻9117c| 97超碰总站| 91丨九色丨东北熟女| 草草电影院| 亚洲少妇激情一区二区三区| 97网址www| 国产一区二区三三视频| 欧美成人精品一区| 亚州Av天美传媒| 天天综和| 亚洲欧美经典一区二区| 69少妇一区二区| 日韩91网| 久久精品国产97欧美精品亚洲 | 狠操91,com| 丁香婷婷啪啪| jk白丝没脱就开始啪啪| 亚洲国产一区二区日韩专区| 97超碰中文在线| 国产日韩欧美| 亚洲美女精品| 亚洲欧美一区二区三区在钱蜜桃| 精品中文日韩字幕视频| 青草视频在线看看看看看看看看看| 免费一级性爱久久| 99久久无码| rivers-china.com| 久热大香蕉网站| 白丝1区2区3区| 亚洲中文一区二区三区视频| 国产乱伦亚洲| 国产女同在线观看视频| 国语精品对白| 日本精品加勒比海一区| 午夜综合在线| 北条麻妃性愛视频| 草蕉影视亚洲无码| 嗯嗯嗯嗯啊啊啊好紧好大| 日韩在线观看中文字幕视频| 亚洲国产一级精品毛一级精品看免费视频 | 天天综合站| 无码丰满熟妇一区二区浪潮AV| 国语精品对白| 后入式福利| 嗯嗯啊啊视频一区二区三区| 鸥美精品一区二区久久婷婷| 18一区二区三区| 婷婷日韩一区二区三区中文字幕在线| 色五月婷婷麻豆在| www.zbzhongsen.com| 久久成人午夜精品影院| 九九成人视频| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 天天干夜夜操网| 又大又长又粗又爽又黄| 亚洲天堂人妻熟妇视频| 国产日韩区| AAAA欧美日韩| 色综合网1| 日本性爱少妇| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 人妻一区二区三区视频| 国产家庭乱伦网址| 亚洲五码一区二区三区| www成人啪啪18秘 免费| 25国产精品免费观看| 丁香五月性爱| 91在线免费观看处女| 丝袜制服字幕在线| 亚洲国内精品成人不卡| 久久中文字幕人妻熟av女蜜柚| 欧美色道啊| 亚洲第一男人天堂| 久久精品操| 好吊色青靑草| 欧美日韩电影成人在线| 中国女人内射6XXXXX| 人妻少妇被猛烈进入中| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 久久久性爱| 久久国产乱子伦精品免费女,网站| 成人小电影网站tex| 国产老女人久久毛| 伊人网综合在线视频| 在线国产福利网址导航| 久久思思热| 97色诱| 欧美91丝袜| 欧美日韩一二三| 天天干人人看综合| 亚洲成熟国产精品美女| 日韩另类色图| 中文字幕人妻色偷偷久久皮 | 亚洲人妻爽爽爽| 97在线视频观看| 欧美大香蕉同搞| 啪啪啪综合网| 美女网站黄页| 一级二级在线观看| 婷婷亚洲综合| 日韩不卡一二三四| 2023天天操夜夜操| 日本在线播放不卡一区| w w w.久久精品| 手机看片日韩人妻| 色色色热| 97在线青| 欧美一区二区三区蜜桃| 天堂九九九九九九九九九| 你草精品在线视频| 天天看天天日天天操| 久草视频在线视频在线视频在线观看 | 97 色综合| 欧美性爱无码一区二区三区| 国产丝袜视频| …中文字幕亚洲乱,97人妻无码费视…| 欧美 亚洲 在线| 无码黑人精品一区二区三区三| 99热9| 伊人久久久日韩一区| 四虎精品一区二区| 欧美东京热精品A∨| 91女在线观看| 久久加勒比| 欧美日韩国内不卡| 牛牛久久国产精品视频一二三 | 97精品97久久| 伊人久久在线视频观看| 超碰在线97国产| 色在线视频导航| 久久美女福利是上海美女| 青青草伊人久久| 精品午夜福利| 久久人妻视频| 精品午夜福利| 激情五月综合网| 另类专区加勒比| 伊人一级免费黄片| 青娱乐 成人娱乐在线| 极品出轨视频网站| 色狠狠色| 97中文字幕一区| 最新日产中文在线麻豆| 日本 情色 1区2区3区| 377p欧洲日本亚洲大胆| 天天综合网~91综合网| 国产AV久久野战精品| 啊啊啊啊啊好大好舒服想要| 摸奶性爱视频网站在线免费播放| n1038 一二三区| 亲子敌伦对白在线播放| 91色艳| 国产女人视频三四五区| 骚逼高潮久久精品| 97香蕉网| 97在线青| 成人av动漫在线观看| 99精品无码| 欧美性爱一级操| 亚春色色| 久久色人体| 婷婷五月天激情四射| 香蕉99秘 精品一区丁香| 91肉丝| 久久女人视频| .精品人妻一区二区三| 91在线丝袜视频| 国产精品熟女九色九色蜜臀| 国产精品丝袜久久亚洲不卡| 欧美黄页在线| 尤物视频一区| 97精品一区| 校园春色综合| 少妇无码av专区线| 懂色影视久久| 色女女女导航| 日韩亚洲国产视频| 99热在线只有精品| 日韩熟女精品无码专区一区二区| 天天干天天燥| 91性网| 国产视频一区二区三区久久亚洲天堂| 一二三四视频中文字幕在线看| 91人人臊| 久久五月视频| 亚洲瓯美色图| 日韩三级伦理中文字幕| 亚洲综合在线高清| 国产激情av女片自拍| 久久久久久无码人妻中文字幕| a在线观看| 青娱乐啪啪视频| 日本精品性生活久久久| 五月天激情四射| 国产精品福利资源在线尤物| 欧美一品道| 久久久久免费少妇| 蜜乳AV一区| 99热这里只有精品18| 91九色丨国产丨爆乳| 黄色AAAAAAAAAAA大片| 人妻精品一区二区| 久99在线免费观看视频| 欧色综合| 国产精品一区人妻精品阁在线| 波多野结衣AV无码一区| 国语精品av| 少妇69中文| 五月天社区| 日本三级A片网站com| 中韩中文字幕在线观看| 啊啊啊好疼| 18一区二区三区| 国产精点久久久成人| A一区片| 青青久久久| 久久伊人网视频一区二区三区| 久久精视频美日韩在线视频| 国产亚洲福利第一页丝袜| 淫穴高潮色图| 97伦乱| 操操操操操操| 国产一区二区三区中文字幕| 日韩激情啪啪| 国产Aα| 91久久免费视频互動交流| 一本大道青青| 少妇熟女视频一二三区| 日韩人人精品| 91成人社区| 91+欧美| 你草精品在线视频| 欧美日韩国第一区| ,国产乱人伦精品一区二区三区| 婷婷在线精品| 伊人色综合网电影| 日韩国产乱子伦App| 成全动漫视频观看免费下载| 亚洲成aⅴ人片不卡无码| 中文乱码字字幕在线第5页| 青青草依人大香蕉| 大香蕉日韩| 人人妻人人色一区二区三区| 伊人欧美大香蕉视频| 美女网站黄页| 综合色久欲| 日本精品九九九| 精品中文日韩字幕视频| 久久久久久久久国产| 欧美暴力猛交| 97在线无精品| 亚洲少妇自拍中文字幕懂色| 国产麻豆一区二三区| 亚洲欧美日韩电影网站一区| 久久久精品久久| 久久精品日韩专区免费观看| 超碰4A| 视频二区美腿制服人妻欧美| …亚洲黄色厕厕女女在线播…| 啊啊啊啊嗯嗯在线久久久| 东北老熟女| 色悠悠伊人网五月天| 色噜噜人妻av中文字幕| 日韩色香| 人妻献身系列第54部| 国产欧美精选激情视频| 免费A V在线播放| 色综合网1| 超碰99在线观看| 女人的久久久| 亚洲色图欧美色图制服诱惑| www男人天堂| 高清无码人妻久久久一区二区三区aⅴ| 99re这里只有精品9| 91中文字幕| 欧美人人曰人人操人人射射| 强歼乱伦资源网| 人人爱操| 麻豆 亚洲 97| 日韩精品-原创伙伴| 中国人高清www色视频免费| 视频国产成人精品日本亚洲18| 日韩欧美成人综合在线| 伊人久久88国产女| 99热精品国产| 成人区人妻精品一| 伊人网青青| 91在线无码精品秘 软件| 亚洲,欧美,春色,另类| 欧美97在线观看| 啊啊啊在线看| 国产精品露脸在线观看| 97碰在线视频| 狠狠图片青青草 | 日韩 人妻 精品| 亚洲综合性网址| 青青草大香蕉视频| 噜噜噜在线视频| 五月婷婷激情综合| 天天综合网亚洲综合网| 一区二区三区美女超清| 大香蕉丝袜一级片| 少妇色综合| 日韩电影在线观看网址| 色色综合网站| 毛片麻豆91糖心精品毛情片| 性无码专区2020| 翔田千里av一区二区三区| 夜夜高潮夜夜爽| 欧洲色综合| 岛国毛片在线观看免费| 国产亚洲 中文欧美久久| 国产第二页| 亚洲色图欧美一区二区不卡| 不卡啪啪视频| 日韩综合97P| 操逼网站网站| 亚洲有码 欧美精品| 国产自啪精品视频网站黑丝| 久久精品国产99精品亚洲蜜... | 尤物一级在线免费观看| 欧洲精品网| 青娱乐淫乱1314| 日日夜夜天天| 亚州性9| 国产欧美一区激情交| 国产亚洲精品美女| 日欧亚洲二三区大片不卡| 国产性感在线观看| 国产v片在线免费观看| 国内91熟女人妻丝袜天天精品视频在线| 久久精品99久久久久久| 性影在线视频| 操亚州| 国产成人99久久亚洲综合| 婷婷国产精品九区| 日韩偷拍一区二区三区| 日本99一区二区| 精品国产三级av韩国在线| 麻豆亚洲Av成人无码一区精品| 97伊人| 9久超碰| 97爱综合| 中文字幕在在线观看网站| 精品视频一区二区| 日韩二级| 日本高清视频xxxx| 中文字幕精品久久久久人妻红杏ⅰ| 久96热在线观看视频| 免费视频在线观看啊啊啊啊啊| 久久精品黄色| 啊啊啊好湿久久| 日本爽爽爽爽爽爽免费视频| 久久天天躁日日躁狠狠躁| 天天爽夜夜爽夜夜爽精| 国产一区二区三区久久精品太古里| 久久久久人妻二区精品叶可怜| 97精品国产手机| a天堂视频| 蜜桃臀一区二区三区久久| 一级A啪啪啪啪| 99re久久| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 精品免费一区二区三区在线亚洲人成| 色视频蜜乳| 色情亚洲日本成人| 国产成人综合网| 97综合| 青青草乱入乱欲视频在线观看| 午夜福利精品| 超碰97COm中文| 亚洲中文字幕妇伦久久| 欧亚成人| 色噜噜狠狠色综无码久久合欧美| 嗯嗯啊啊好疼| 超碰 97国产熟女| 99国产精品视频尤物| 久久久999国产精品| 黑丝少妇| 岛国片国产成人亚洲播放| 亚洲97网站| 精品少妇一区二区三区免费观看| 蜜乳AV.COM| 热G综合热G中文| 久久久99久9| 亚洲av影院在线观看| 精品午夜福利| 后入式五六区| 欧美婷婷久久| 五月综合色| 精品午夜福利国产一区二区在线观看| 60秒不遮不挡| 果冻传媒A片一二三区| 99热这里只有精| 插日本熟女视频| 日本熟妇浓毛hdsex| 粉嫩av一区二区三区四季| 超碰亚洲97| 国产亚州高清国产拍精| 老熟女乱伦片| 噜噜噜噜久久久精品免费| 亚洲视频小说| 青青草久久一区网| 亚洲国产第一页综合视频| 曰本人妻人人澡人人夹| 人人搞人人插人人操| 日韩天天综合| 操淫穴亚洲五月丁香| 人人色人人射人人妻| 久久99久久99精品免视看婷婷| 国产精品亚洲无码| 尤物av网站免费在线播放| 精品人妻一区二区三区四区| 伊人久久亚洲色欲综合网站| 夜夜国产一区| 97干色天堂| 日本熟妇一区二区三区| 大香交伊人网| 亚洲超碰在线| 婷婷激情综合网| 深夜激情无码| 成人免费在线网站| 国产92麻豆天美精品色欲5| AA级电影三区| 岛国A V在线免费看| 十八禁啪啪视频| 啊啊啊啊网站| 久久久中文| 99re这里只有精品9| 少妇淫妇久久久久久久| 91女日逼| 熟女91网站| 美女啊啊啊啊啊啊| 神马久久久久久| 久久激情婷婷| 国产精品直播在线观看直播| 91一区二区三区蜜桃| 丰满人妻区一区二区三| 一起草三级AV电影在线观看| 啪啪视频免费在线观看| 精品三级在线专区| 日韩欧美大力操| 无码高清操逼网址| 国产女乱淫真高清免费视频| 操逼1区| 欧亚性爱啪啪| 97久久超碰| 亚洲色图大香| 粉嫩国产精品久久久| 婷婷色香| 无码九九| 久久久久久九九九九九| 国内一区二区免费| 日韩一级性爱无码| 中文字幕精品日韩中文字幕| 亚洲精品a人片在线观看视| 欧美视频中文字幕区| 99热在线播放| 亚洲熟妇无码一区二区三区| 99久热精品99re6热| 欧美精品23| 2020中文在线一区二区三区| 深夜激情无码| 91xingse| 蜜桃久久精品一区二区三区| 中文字幕精品三级久久久| 久久在肏| 成人av福利在线观看| 高跟丝袜AV专区国产| 婷婷五月色| 中文乱码99| 久久网亚洲| 欧美高清第一页| 一级性爱啪啪视频| www.色婷婷.com| 中文字幕版| 熟女高潮精品一区二区| 国产91影院| 免费看欧美美女黄色大片| 91久久国产综合久久| 久久精品夜色国产亚洲AV| 大逼色网站| 在线无码视频| 天天添天天干电影| 青青操日韩| 国产一区二区免费福利片| 欧美性爱伊人| 久久綜合很很很| 91n处女在线观看| 老外又粗又长一晚做五次| 亚洲综合成人网| 欧美久久婷婷| 东北女人无套内谢视频| 99久久久无码国产精品性男| 吉田爱美AV在线| 99超碰碰| 福利色色| 熟妇高潮精品一区二区三区下载| 九九碰九九爱97超| 欧美精品日韩一区二区| 国产1727欧美| 日日夜夜精品| 九月AV| 综合欧美亚洲| 大香蕉五月天| 亚洲少妇免费视频\| 久久国产逼| 女同在线视频一区| 人人操人人操人妻人| 免费在线黄片视频| 日韩av色图综合| 日本一区二区电影网站| 九九九九亚洲| 婷婷五月天av| 亚州精品人妻一二三区| 一类无码操逼视频| 日韩三级在线观看mp4| 男人天堂网址| 亚洲情色五月天| AV女优男人的天堂| 丁香激情五月| 老熟女91视频| 蜜臀国产AV中文字幕| 伊人网在线点播| 国产粉嫩出水在线播放| 精久久久| 操99| 亚州性色| 91人妻人人妻| 84YTCOM性无码| 日韩伦理视频| 蜜乳成人AV| 亚洲黄日韩无码专区| 日韩av在线精品观看| 九九热免费国产视频婷婷伊人五月 | 精品人妻一区二区三区视频| 亚洲国产尤物yw在线观看| 人人澡人人弄| 国产网红精品| 亚洲中字慕不卡| www.久久爱| 亚洲熟女人妻中文字幕一区二区| 国产按摩一区二区三区| 97碰| 日韩午夜国产| 国产精品自在线发布| 男女香蕉一区二区| 开心婷婷五月| 牛牛AV人人夜夜澡人人爽| 91亚洲影院综合| 一本大道不卡一二三区| 亚洲脚交| 高凊专区人人操| 国产精品久久久无码aV去| 大香蕉琪琪日本女优不卡| 亚洲制服欧美另类内射| 人妻娇喘 激情视频| 婷婷香蕉欧美在线一区二区三区| 岛国黄片网站| 91网站18+| 中文字幕高清20页视频| 国产女s强制榨精视频| 亚洲的天堂网| 天天日夜夜| 麻豆视频国产一区二区| 色亚州人久干视频在线观看免费版| 十八禁啪啦拍视频无遮挡| 久久男人的天堂| 久久大精品乱码视频人妻熟女| 国产成人精品亚洲日本| 91中出| 91女优在线观看 | 91处女在线视频| 日韩人体偷拍| 亚洲av无线观看| 久久只有精品| 国产不卡的视频| 欧插网站| 立川理惠加勒比无码| 欧洲性爱无码区| 九九九只有精品| 欧美中文字幕一区| 五月婷婷激情网| 都市久久精品激情亚洲| 黑人在线91| 亚洲精品 欧美精品| 无码免费一区二区三区啪啪| 淫荡少妇免费| 日本精品一级二级三级| 亚洲 欧美 第一页| 加勒比伊人综合| 九九玖玖精品| www.色婷婷| 午夜寂寞欧美| 国产精品成人无码a v毛片| 天天爱天天操| 久草电影网| 一本久久精品中文字| 精品人人| 99无码| 9999免费精彩视频| 国产精品久久99日日| 很很操在线| 久久久久久久91| 亚洲日韩97| 欧美在线视频观看一二三四区高清| 国产精品国产自产拍高清AV| 国产激情久久| 91精品久久综合熟女| 日韩欧美国产一区二区三区四区| 欧美真人抽搐一进一出gif| 99热伊人| 啪啪自拍九九综合| 久久婷婷一区| 公司1区2区3区精产精| 青木玲在线不卡| 神马午夜久久久| 免费农村成人少妇人妻Aa一区二区视频| 久久五月婷| 亚洲欧美国产日本一区二区三区| 中日韩欧美精品无码AⅤ一区二区| 日本人妻中文字幕精品| 成人午夜高潮av猛片| 久久久新亚洲AV| 97干色| 亚洲美女AV无码| 日韩肏逼视频| 超碰在线欧美性爱激情| 亚洲AV成人精品网站在AV| 污色区网站| 熟女激情综合网| 99久久精品欧美国产| 亚洲春色欧美激情自拍| 久久天天艹| 亚洲国产精品9999在线观看| 精品人妻中文字幕4399| 国产探花精品在线| 午夜福利免费精品视频| 日本精品一区二区中文字幕| 色狠狠色| 九九热免费国产视频婷婷伊人 | 亚洲色 国产 欧美 日韩| 久久性爱网站| 99视频在线| 久久精精区一区二区一蜜桃一区二区| 亚洲色人妻综合| 嗯嗯啊啊亚欧精品| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 高清无码久操视频| 日韩欧美成人综合在线| 日韩精品永久在线观看| 婷婷亚洲综合| 久妇网| 妇人噜噜| 蜜臀在线网站| 久久久96| 伊人久久综合精品欧美| 欧美性爱另类综合| 一区二区三区 丝袜 高跟 美腿| 欧美性后入| 97爱碰| 日本在线999| 婷婷伊人五月| 三级网色| 麻豆天美国美国产AV| 伊人丝袜美腿高跟在线观看高清| 亭亭在线资源| 婷婷五月天激情四射| 狠狠操官网| 久久99亚洲精品久久99果| 久操九九九九| 天综合网欧美| 91精品人妻一区二区三区蜜桃| 日语五十路和六十路亚洲国产精品| AV一区观看| 久久久国产三级黄色片| av操操不卡| 蜜桃臀AV在线| 青娱乐福利99| 亚洲激情四射| 少妇精品久久久| 国产精品天堂| 日本国产欧美高清在线| 欧美综合97www| 欧美淫乱视频| 在线岛国新天堂8| 五月丁香综合网| 99精品人人爽| 精品人妻一二三| 性爱乱伦一区| 欧美日韩国产电影| 玖玖久久久| 国产 无码 一区二区| 久久免费老司机精品| 人人操人人精品影片| 成人午夜高潮av猛片| 婷婷在线视频| 欧美精品欧美精品系列 | 国产午夜精品理论片一二三区区| 成人性爱电影一区二区| 亚洲欧洲久久天堂| 26uuu最新| 五月综合激情网| 日本天堂在线播放| 国产 日韩 欧美高清| 欧美少妇一区二区三区| 九热久| 欧美性爱另类综合| 日韩中文9| 强奸乱伦大香蕉| 99re视频这里只有精品| 欧美日韩啪啪电影| 人妻熟女字幕一区二区| 国产精品ww久久| 欧美爆乳精品一区二区| 夜夜天天噜狠狠爱2021| 色欲日韩欧美在线一区| 亚洲无码色| 国产suv精品一区二区四区999| 欧美色66| 一区二区三区四区五区久久久久久| 国际精品久久久| 欧美国产精品久久九九| 青娱乐亚洲自拍| 丁香五月天啪啪| 六月丁操逼| 熟妇一区,二区,三区。| 91成人无码| 操逼免费视频无码国产| 99在线观看| 久久久久久91香蕉国产| 超碰在线在公开超碰在线在公开| 日韩熟女精一区二区三区不卡| 亚洲黄色视频在线观看视频| av凤凰久久久| 91麻豆天美国产| 51一区二区三区| 91一区二区三区蜜桃| 亚洲欧美激情在线视频| 国产白领连续中出在线观看| 青青草好吊| 亚洲网站一区二区在线| 干婷婷综合网| 亚洲黄日韩无码专区| 久久久涩| 欧美日本中字另类在线| 女人的久久久| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 精品国产肉丝袜在线拍国语| 超碰人妻久久人妻中文97| 天堂亚洲精品| 日韩中文字幕人妻视频| 理论久久婷婷网 8| 一级免费精品| 视频黄色国产一级| 有码人妻系列| 97免费视频在线| 激情接吻视频久久久久久| 日日干夜夜操视频h| 草草草视频| JULIA一区二区三区在线播放| 久久神马影院| 思思久热在线精品66| 99热精品在线| 中文字幕色AV| 久久久久久久久成人av解说| 日本999精品| 日韩熟女无码| 欧美精品在线观看| 天美传媒AV在线| 91九色在线| 日日AAvv| 伊人色综合网电影| 青久久| 丰满人妻无码一区二区三区| 区一二区日韩亚洲乱码av电影| 精品日韩| 亚洲色图激情小说| 国产剧情在线| 射 色综合| 亚洲丝袜诱惑| 视频二区美腿丝袜制服人妻欧美| 青青草公开在线免费不卡视频| 日韩精品在线观看网站| 嫩草 我啊~嗯~在线| 操高情无码| 夜夜骑操视频| 日韩欧美中文| 综合97久久| 欧美精品日韩一区二区| 91丝袜人妻| 激情小说五月天| 亚洲色交| 精品久久久中文字幕不| a片在线播放| 一区二区三区蜜桃成人撸久久东京热| 亚洲熟女乱色一区二区三区| 精品人妻视频一区二区三区蜜桃视频| 亚洲色图尤物视频| 超碰在线97国产| 亚洲一本色道中文无码aV天美| 久久久九九| 99热欧美| 97国产人人| 情色五月天久久久| 人妻81p| 啊啊啊轻点在线观看| 9色在线| 麻豆三极片| 久久综合超碰| 亚欧高清在线| 无码人妻1727| 91爱看| 国产精品国产拍高清AV| 综合 亚洲 欧美| 久久97资源 网| 日韩不卡在线一区二区| 久草看看看| 蜜桃传媒一区二区亚洲| 约操熟妇| 人人妻人人玩人人澡人人爽| 亚洲综合小视频小说在线观看| 国产精品探花视频| 粉嫩av一区二区三区天美传媒 | 操逼无码操逼| 久草久日| 中文字幕一区二区三区蜜臀| 一区二区三区高清天码| 亚洲脚交| 日本不卡码黄色| 五月天婷精品激情| 国产一级高清免费观看| 69久久久久久久久久久久久| 95人妻爽爽人人做人人澡| 国内精品a| 中文字幕一区二区三区人妻不卡 | 不卡二三区人妻少妇| 97久久精品国产| 91色久| 亚洲小电影免费涩涩成人在线高清| 在线 欧美 亚洲| 中文字幕丝袜人妻| 色五月av| 岛国艾薇凹凸视频天堂| 精品视频在线观看| 亚洲乱熟女一区二区| 少妇六月天| 屌色在线97视频| 久久av成人无码免费| 一区在线精品中文字幕| 丝袜视频网国产90| 好好的日:com久久九九| baisiav| 久久久精品国产亚洲AV无码| 岛国福利在线精品播放| 亚州性9| KK色在线影院| 操淫穴亚洲五月丁香| 强上我不卡卡| 9久综合网| 丁香五月天激情| 可以免费观看的日韩av毛片| 久久欲| 视频国产欧美在线播放| 最新制服中文第一页| 韩国嫰模上门援交视频| 日本大香蕉| 九九九久千久久激情蜜桃在线看| 婷婷亚洲综合| 97香蕉碰碰人妻国产欧美| 国产69精品久久久久99尤物| 欧美激情性久久久久久| 超碰在线人人射| 97欧美在线| 天天综合网~91| 五月天婷婷社区| 人妻另类| 亚洲综合有码| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 97碰碰色| 丰满人妻-区二区三区免费看| 玖玖综合视频| 亚洲图片偷拍欧美| 东京热AV男人的天堂| 爱丝福利| 97亚洲自在精品在线观看| 91精品操美女| 欧美日韩亚洲少妇寂寞影院正在播放| 福利大香蕉| 精品少妇一区二区三区| 精品少妇高潮久久| 一卡二卡三卡| 91老司机视频| 淫荡网址| 人人么人人操| 欧美人人曰人人操人人射射| 日韩无码操逼片| 影音先锋视频在线| 激情干在线| 欧美日韩99| 超碰79人人乐| 亚洲欧美性生活| 亚洲精品 欧美精品| 综合天天。| 婷婷丁香人妻| 中文字幕97| 777AV电影| 国产欧美亚洲精品a第2页| 狠狠狠狠狠| 亚洲色欲一区二区三区| 热久日综合| 久久人体一区二区| 少妇的嫩逼图片| 无遮挡男女激烈动态图| 欧美日韩亚洲一区二区在线观看| 日本Xx性爱| www.夜夜操| 久久做97| 色香综合天天影视综合| AV女优男人的天堂| 亚洲啪AⅤ永久无码| 午夜寂寞欧美| 99色悠悠| 欧美天堂亚洲电影院一区在线播放| 97草草| 久久久久九九九九| 欧美日韩激情无码专区| 超碰在线91| 午夜福利区| 97色欧洲| 午夜a成v人电影| 国产精品久久久久久久久AV大片| 蜜臀av在线播放一区二区三区| 免费网色网站| 天堂性色| 中文字幕中文字幕一区二区| 五月天激情网图片| 黄资源| 日韩小电影| 国语国产操逼伊人AV网| 大香蕉男女超碰精品在线| 青青草成人视频在线观看二区| 少妇的嫩逼图片| 青娱乐欧美激情一区二区| 五月天开心网| 蜜桃狠狠色伊人亚洲综合 | 一区二区激情国产熟女 | 国产精品视频麻豆入口| 91大学精品激情戏| 久久久精品一区二区| 色色毛片| 99色综合| 果冻传媒A片一二三区| 亚洲中文字幕熟女| 日韩成人综合网| 黄色片G G G| 久久透逼视频| 偷拍 亚洲| 亚洲天堂另类| 色呦呦呦在线观看视频| 日韩精品高清资源在线| 色香天天| 九九aV| 中文字幕二区| 可以在线观看AV的网站| 69人妻精品丰满熟女区| 国产400孕妇孕交群| 日本3级一区二区免费 | 色啪网| 国内外毛片在线观看| 曰韩精品视频一区二区| 精品一区二区三区最新| JuliaAnn丝袜熟女系列| av资源在线观看少妇| 精品美女人人干| 激情国产乱伦Av| 欧美日韩婷婷中文| 天天射天天操天天干天天吃2018| 少妇一线天久久久久久| 久九九九九九九九热| 国产超碰| 91视频女生| 一区二区三区欧美激情| 女同性恋中文字幕| 亚欧高清v| 欧美另类丝袜熟女| 337p大胆噜噜噜噜噜91Av| 99在线观看视频在线高清| 不卡免费av在线播放| 久久女女| 狠狠色婷婷777| 中文字幕成人乱码熟女精品国50 | 99re在线| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 蜜臀久久久| 日本熟女中文字幕一区| 伊人久久蜜月| 亚洲欧美日韩精品久久久一区二区| 亚洲素人网| 多乙久久久久久| 老熟妇一区二区三区| 亚卅熟女乱色| 欧美性夜| 大香蕉伊人网WWWn0n| 被窝影院午夜看片无码| 美日韩在线不卡人妻| 欧美亚洲色图另类国产| 亚欧洲一区二区视频| 欧美成人性爱视频大全| 男人的天堂99| 99.色网| 无码丰满熟妇一区二区浪潮AV| 岛国999| 婷婷啪啪| 国产精品无码成人精品| 综合91网| 激情五月丁香五月| 91精品老女人| 日韩午夜国产| 国内精品久久久久影院亚洲| 老女人综合| 久久夜色一区二区| 九九探花视频在线观看| 久久久精精精| 内射黑人| 夜夜草网站| 秋霞怕怕片| 国产精品午夜福利视频| 五月天激情小说| 狠狠色伊人亚洲综合网站色 | 十八禁视频网站| 日本操逼无码| 精国久久一区二区三区98| 色五月综合网| 国产传媒午夜理伦精品| www.成人无码| 久久婷婷在线观看视频| 日韩性爱再线视频| 亚洲婷婷丁香在线| 国产丸一视频| 大香蕉AV丝袜| 成人网站 免费观看| 成人线上超碰| 国产精品高朝久久久久久久| 99热超碰| 欧美婷婷五月天| 老子午夜伦不卡影院| 97K超碰在线| 九九九九九九九九九五码| 亚洲男人的天堂亚洲| 久久社区一区二区三区| 亚洲精品久久久久久久蜜桃臀| 丝袜美腿射精91| 97精品国产97久久久久久户外免费| 97亚洲欧美日韩| 九九精品网| 欧美91精彩| 欧美男女午夜啪啪| 日韩一级欧美一级在线观看| 午夜视频黄| 国产精品噜噜噜日日日| 亚洲精品国产熟女久久久| 欧美激情欧美精品| 一区二区你上我| 日韩精品一区二区三区色欲| 国产精品无码av嫩草| 亚洲欧美高清无码| 97超碰9| 人妻人久久精品中文字幕| 综合网久久| 美腿色图| 久久久久久亚洲精品不卡人乳| 殴美大黄片| 无码逼| 免费1级a做爰片观看| 91精品人| 精品午夜福利| 精品久9| 偷拍盗拍亚洲色图图片| 精品人妻高清麻豆av| 久久久国产护士丝袜美腿一| 操死我了嗯嗯嗯| 桃色六月天| 麻豆国产原创AV色哟哟| 久久欧美按摩999| 欧美一级三级| 国产原创自拍| 欧美色图天堂在线| 女优视频第10页| 91黑丝露脚| 一区二区偷拍拍视频| 久久人妻丝袜一区二区三| 久久女婷| 亚洲欧美精品一区天堂久久 | 91麻豆一二三区| 欧色性第一页| 日韩精品9区| 欧美激色| 日本高清一本二本免费不卡| 久久9999| 欧美日韩人妻精品系列一区二区三区| 97伊人超碰| 一区二区三区四区理论片| 天天看片青娱乐| 黑人娇小av在线播放| 国产精品午夜AV完会免费 | 一区二区三区四区姦女| 双插在线| 中文字幕av丝袜| 免费精品AB| 91爱| 国产精品不卡一区二区电影| 亚洲欧洲综合av在线|